Moin,
dieses Verhalten ist mir nicht neu und nun ich stelle dein Beispiel nach und im Fenster "Wechsel in .... " drücke ich auf Hilfe.
"Am Projekt wurde mithilfe des Erweiterbarkeitsobjektmodells (Add-In) programmatisch eine Änderung vorgenommen. So wird verhindert, dass die Ausführung für das Programm angehalten wird. Sie können die Ausführung fortsetzen oder beenden, aber nicht anhalten."
Damit bist du bei Microsoft erst einmal informell am Ende.
Das "Minimalbeispiel" reagiert bei mir im Einzelschrittmodus ab der Codezeile "element.Delete" und bei vorab gesetztem Haltepunkt unmittelbar.
Jedoch der Code gefällt mir nicht, ich mag keine undeklarierten Variablen und füge die Zeile ein
Dim element As Worksheet
Aha, jetzt läuft der Code bis zum Haltepunkt und darüber hinaus wie er soll!
Anstatt, wie zuerst einen Variablentyp Variant "ins Rennen zu schicken", wird hier durch die frühe Bindung des Worksheet-Objekts der sogenannte p-Code anders kompiliert.
Leider ist dies nur eine "Randerscheinung", die eigentliche Ursache (für den Break) liegt tiefer.
OLEobjects-Auflistung und OLEobject, die Verwendung von ActiveX-Controls. Dynamische Verwendung (Code) erzwingt die Rekompilierung des Projekts (= siehe Microsoft Statement).
Praktisch musst du somit selbst durch gezieltes und richtiges Design deinen Code für jeden Einzelfall an diese Umstände anpassen.
LG hawediare
|