Ich habe ein dringendes Problem zu lösen und bin in den letzten Tagen keinen Schritt weiter gekommen!
Den folgenden Code habe ich in einem Standardmodul:
---------------------------------------------------
Public TestVarPublic As Integer
Sub SetTestVarPublic()
TestVarPublic = 1234
End Sub
Sub ShowTestVarPublic()
MsgBox (Str(TestVarPublic))
End Sub
Sub TestVarStatic()
Static TestVarStatic As Integer
MsgBox (Str(TestVarStatic))
TestVarStatic = 4321
End Sub
Sub GenComboBox()
ActiveSheet.OLEObjects.Add _
ClassType:="Forms.ComboBox.1", _
Link:=False, _
DisplayAsIcon:=False, _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height
End Sub
Sub GenDropDown()
ActiveSheet.DropDowns.Add _
Left:=ActiveCell.Left, _
Top:=ActiveCell.Top, _
Width:=ActiveCell.Width, _
Height:=ActiveCell.Height
End Sub
--------------------------------------------
Ich habe eine Überwachung für die beiden Testvariablen eingerichtet!
Ich starte die Makros nun manuell:
1. SetTestVarPublic ==> TestVarPublic=1234, TestVarStatic=0
2. ShowTestVarPublic ==> TestVarPublic=1234, TestVarStatic=0
3. TestVarStatic ==> TestVarPublic=1234, TestVarStatic=4321
4. TestVarStatic ==> TestVarPublic=1234, TestVarStatic=4321
5. GenDropDown ==> TestVarPublic=1234, TestVarStatic=4321
6. ShowTestVarPublic ==> TestVarPublic=1234, TestVarStatic=4321
7. TestVarStatic ==> TestVarPublic=1234, TestVarStatic=4321
8. GenComboBox ==> TestVarPublic=1234, TestVarStatic=4321
9. ShowTestVarPublic ==> TestVarPublic=0, TestVarStatic=0
10. TestVarStatic ==> TestVarPublic=0, TestVarStatic=0
Bis zu dem Zeitpunkt, zu dem ich ein OLE-Objekt generiere, ist alles ok. auch direkt nach der Generierung zeigen die Überwachungen die korrekten Werte. Jedoch wenn ich danach in eine beliebige Funktion eintrete (ohne dort auch nur eine Anweisung ausgeführt zu haben) sind beide Variablen zurückgesetzt.
Kann jemand das Verhalten reproduzieren? Woran leigt es, dass scheinbar bei dem nächst folgenden Funktionsaufruf nach dem anlegen des OLE-Objektes die Application zurückgesetzt zu sein scheint, so dass alle globalen und static Variablen zurückgesetzt sind?
Ich wäre sehr dankbar für schnelle Hilfe!
Viele Grüße,
Hartmut