Hilfe!!! Add.OLEObjects... setzt Applic. zurück

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 2000 SR1
nach unten

Betrifft: Hilfe!!! Add.OLEObjects... setzt Applic. zurück
von: Hartmut Gierke
Geschrieben am: 17.04.2002 - 11:41:41

Hi.

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

nach oben   nach unten

Re: Hilfe!!! Add.OLEObjects... setzt Applic. zurück
von: Hans W. Herber
Geschrieben am: 17.04.2002 - 14:20:11

Hallo Hartmut, das Problem scheint bekannt, aber nicht gelöst zu sein, vermutlich ein xlBug. Als Alternative zu den Public/Static Variablen bietet Excel Möglichkeit der Notierung der Werte in Zellen, m.E. eine verläßlichere Methode als der Einsatz von Public Variablen. hans

nach oben   nach unten

Re: Hilfe!!! Add.OLEObjects... setzt Applic. zurück
von: Hartmut Gierke
Geschrieben am: 17.04.2002 - 14:57:35

Vielen Dank, Hans. Ich hatte sowas bereits befürchtet aber bisher nirgends im Internet ein entsprechendes Statement gefunden. Also danke nochmal! Ich vermute, dass das auch nicht mit dem SR2 von Office 2000 behoben sein wird, oder? Was machen denn all die anderen Entwickler die mit OLEObjects arbeiten? Benutzen die einfach keine globalen/static Variablen oder benutzen die Tabellen-Zellen zur Ablage wie Du es beschrieben hast? Ich habe im Forum doch viele Beiträge bezüglich OLEObjects gefunden bei denen scheinbar mein Problem gar nicht auftritt trotz der Benutzung von OLEObjects. Also nochmal vielen Dank und viele Grüße. Du hast mir dehr geholfen! Hartmut

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Blattschutz + Gruppierung"