PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBADelning av data mellan makro i olika filerDelning av data mellan makro i olika filer
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-07-15 10:33
 
Hej, hoppas ni kan hjälpa mig med ett litet problem.
Försöker att överföra information mellan två Excel filer för att hålla ner filstorleken på användarens fil, lägga det mesta av makrot på annan plats.
Det färdiga programmet kommer att innehålla 25000+ rader kod och ett 70 tal underprogram.
Fått det att funka om Function används men då måste rätt parameter vara med och med 70 tal underprogram blir detta besvärligt.
Vill helst använda Sub och att alla parametrar/argument följer med mella de olika filerna, som det är nu blir det inte så.
Sub Slave, ingen data följer med på något håll men Dim blir rätt
Sub SlaveE, data följer med från master till slave men inte tillbaka
Function Slavef, funkar men rätt parametrar måste hela tiden följa med...
Vad gör jag för fel?
 
Kod i Master.xlsm
 
Public ZOP, ZST As Integer
Option Explicit
Public WorkbookName As String
Public MacroName As String
Public pris() As Integer 'Funkar med Function

Public Sub CallAnotherMacroSub() '(ZOP, ZST)  ' As Integer)
    WorkbookName = "Slave.xlsm"
    MacroName = "Slave"
   
    ZOP = 1
    ZST = 2
   
    Application.Run "'" & WorkbookName & "'!Slave", ZOP, ZST 'Data med p? enah?llet men inte tilbaka
   
    'Application.Run "'" & WorkbookName & "'!Slave"
   
    ZOP = ZOP
    ZST = ZST
   
   
End Sub

Public Sub CallAnotherMacroFunc()
    WorkbookName = "Slave.xlsm"
    MacroName = "Slave"
   
    ZOP = 1
    ZST = 2
   
    'Funkar med Function
    pris = Application.Run("'" & WorkbookName & "'!Slavef", ZOP, ZST)
    ZOP = pris(0)
    ZST = pris(1)
   
End Sub
 
 
Kod i Slave.xlsm
 
Public ZOP, ZST As Integer
Option Explicit
Public ut(1) As Integer
Sub Slave(ZOP As Integer, ZST As Integer)
 
    ZOP = ZOP + 2
    ZST = ZST + 3
   
    'ZOP ZOP
    'ZST ZST
End Sub
 
Sub SlaveE(ZOP As Integer, ZST As Integer)
 
    ZOP = ZOP + 2
    ZST = ZST + 3
   
    'ZOP ZOP
    'ZST ZST
End Sub
 
Function Slavef(ZOP, ZST)
    'Dim ut(1) As Integer
   
    ut(0) = ZOP + 2
    ut(1) = ZST + 3
    Slavef = ut
   
End Function
Nytt inlägg
 2019-08-05 11:27
 
Hej hej

Du måste köra med late binding för att det ska fungera. E.g bind application till ett objekt.

Application.Run "'" & WorkbookName & "'!Slave", ZOP, ZST

Ersätt detta med

Dim o
set o = application
o.Run "'" & WorkbookName & "'!Slave", ZOP, ZST

Mvh
Christian

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBADelning av data mellan makro i olika filerDelning av data mellan makro i olika filer

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter