Zu deiner Frage ein JEIN
am obigen Beispiel hilft die die frühe Objektdeklaration und so sollte Code auch geschrieben werden.
In jedem Debugger-Modus treffen 3 Ebenen aufeinander. Das sichtbare Codefenster, der Pseudocode und der Interpreter.
Jetzt ackert der zusätzlich noch mit OLEobjects Fabrikat ActiveX-Controls. Das Parent-Object des Command-Button ist wiederum das Worksheet auf die Methode .Delete angewendet wird.
Erzwingt das OLE-Object eine Rekompilierung? - das scheint eine "Henne - Ei" Situation!
Flapsig bedeutet dies - "erkennt der freundliche Helfer, dass seine Werkstatt neu tapeziert wird, dann schmeißt er dich vorsorglich aus dem Debugger-Mode.
z. B. zum Vergleich und zum "Haare raufen"
'Option Explicit
Sub Auchein_Loesche_Tabelle2()
Dim element As Worksheet
Dim oOle As OLEObject
For Each element In Sheets
If element.Name = "Tabelle2" Then
For Each oOle In element.OLEObjects
oOle.Delete
Next oOle
Application.DisplayAlerts = False
element.Delete
Application.DisplayAlerts = True
End If
Next element
MsgBox "PAUSE" ' <-- Hier soll ein Haltepunkt gesetzt werden
End Sub
Sub D1()
For Each element In Sheets("Tabelle2").OLEObjects
element.Delete
Next
MsgBox "erfolgreich" ' = HALTEPUNKT
End Sub
Sub D2()
Dim element As OLEObject
For Each element In Sheets("Tabelle2").OLEObjects
element.Delete
Next
MsgBox "erfolgreich" ' = HALTEPUNKT
End Sub
LG hawediare
|