Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
112to116
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
112to116
112to116
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel, VBA, ActiveX-Bug?

Re: Excel, VBA, ActiveX-Bug?
16.04.2002 17:11:29
mathias r.

Die Variable obj ist in deinem Beispiel ja nicht wirklich global
Das wäre sie wenn sie in einem STANDARDmodul deklariert wäre und dann auch mit
Public obj as Object

Ob es daran liegt sei dahingestellt.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Excel, VBA, ActiveX-Bug?
16.04.2002 17:20:07
Hartmut Gierke

Sorry, Du hast natürlich (eingeschränkt) Recht. Sie ist zwar global aber der Sichtbarkeitsbereich ist natürlich eingeschränkt auf das Sheet. Ich habe das allerdings auch schon in einem Modul probiert und hatte dort den gleichen Effekt.

Trotzdem Danke!

Excel, VBA, ActiveX-Bug?
16.04.2002 17:03:22
Hartmut Gierke
Hi!

Ich scheitere seit einigen Tagen an der Lösung des folgenden Problems:
-----------------------------------------------------------
Option Explicit
Dim obj As Object

Private Sub REM_Worksheet_SelectionChange(ByVal Target As Range)
If Not obj Is Nothing Then
obj.Delete
Set obj = Nothing
ActiveSheet.Range("A1").Value = "obj deleted"
Else
ActiveSheet.Range("A1").Value = "obj not found"
End If

Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=ActiveCell.Left, Top:=ActiveCell.Top, Width:=ActiveCell.Width, Height:=ActiveCell.Height)

' Set obj = ActiveSheet.DropDowns.Add(Left:=ActiveCell.Left, Top:=ActiveCell.Top, Width:=ActiveCell.Width, Height:=ActiveCell.Height)
End Sub
----------------------------------------------------------

Nach verschiedenen Tests habe ich festgestellt, dass bei der Ausführung des Codes beim Eintritt in eine belibige andere Funktion die gesamten globalen Variablen zurückgesetzt werden. Die Generierung des OLEObjectes funktioniert dabei noch sehr gut. Die globale Variable, die das Objekt hält ist nach der Generierung auch vorhanden (d.h. nach dem Verlassen der Funktion). Allerdings werden beim Aufrufen einer belibigen anderen Funktion alle globalen Variablen und damit auch das Objekt selbst zurückgesetzt und ich habe keine Ahnung, warum! Nachweisbar ist das allerdings nur dadurch, dass man zu Testzwecken eine weiter globale Variable erzeugt und diese überwacht. Wenn ich allerdings das OLEObject durch ein belibiges anderes (im Beispiel auskommentiertes DropDown z.B.) ersetze, dann klappt alls hervorragend.

Selbstredend benötige ich in einem größeren Projekt globale Variablen noch an anderen Stellen so dass mir diverse Workarounds (z.B. referenzierung über einen speziellen Objektnamen) nicht weiterhelfen!

Ich würde mich sehr freuen, wenn mir jemand bei diesem Problem weiterhelfen könnte. Danke im Voraus!

Gruß,

Hartmut


Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige