VBA Referenz zwischenspeichern ?
-
Ich habe die großartige Aufgabe einen prozess mit VBA zu automatisieren und bin nun auf ein Problem gestoßen.
Wenn ich einen von mir definierten Type ByRef übergebe dann kann ich ihn nicht zwischenspeichern
'Def: Type XYType Dim var As XYType Dim var2 As XYType Sub irgendwas(ByRef data As XYType) MsgBox data.blub 'funktioniert var2 = data MsgBox var2.blub 'funktioneirt nicht End Sub 'Aufruf: irgendwas(var)
"Set" darf ich in dem zusammenhang auch nicht benutzen ? Hab jetzt schon ewig lang gegoogelt aber es scheint mir als ist das einfach nicht möglich ???
-
wieso darfst set nich benuten?
-
"Fehler beim Kompilieren: Objekt erforderlich"
heißt es dann.
-
kennt er var2 in der funktion??
ist das der orignalcode denn du da hast? wenn nein poste mal
-
Benutze im moment ein Modul und ein Form und will dann später halt zwischen mehreren Forms daten tauschen.
Modul:
Public Type EPDataSet iKatalogID As Long data() As EPDataRow size As Integer End Type Sub ShowGui() Dim epDatas As EPDataSet epDatas.size = 5 ReDim epDatas.data(0 To 0) Form1.Show_PassData epDatas End Sub
Form1:
Private epData As testClass Public Sub Show_PassData(ByRef data As EPDataSet) epData = data 'bzw. wenn hier Set steht kommt der beschriebende Fehler MsgBox data.size 'ergebnis = 5 MsgBox epData.size 'Falsch wird mir hier angezeigt End Sub
-
Private epData As testClass
soll schon
Private epData As EPDataSet
heisen odeR?
-
Oh ja, übersehen, bin da gerade am rumtesten ...
-
und gehts jetzt mit set ?
-
Es scheint so ja!
Wenn man die Types durch klassen ersetzt kann ich New und Set benutzen und dann scheint es zu funktionieren. Die Frage ist, wieso geht das nicht auch mit Types ?
-
das weis ich leider nich.. ich mag VB nicht;)