Excel-VBA – Makro pausieren (Break/Stop) und fortsetzen
In diesem Tutorial zeigen wir Ihnen, wie Sie ein Makro in Excel pausieren (unterbrechen) und fortsetzen können.
Die Möglichkeit, ein Makro anzuhalten, während wir den geschriebenen VBA-Code testen, ist eine nützliche Methode, um herauszufinden, wo sich Fehler in unserem Code befinden. Es gibt eine Reihe von Möglichkeiten, die Ausführung des Makros zu unterbrechen und dann an der Stelle fortzusetzen, an der das Makro unterbrochen wurde.
Die Tastenkombination Steuerung und Unterbrechen
Wenn wir die Steuerungstaste gedrückt halten und dann die Taste Pause/Unterbrechen drücken, während der VBA-Code ausgeführt wird, wird dieser sofort mit einer Debugger-Meldung angehalten, die uns darauf hinweist, dass die Ausführung des Makros unterbrochen wurde.
Wir können dann im Dialogfenster, dass sich geöffnet hat, auf die Schaltfläche Fortsetzen klicken, um die Ausführung des Makros fortzusetzen. Wenn wir alternativ dazu im Dialogfenster auf die Schaltfläche Debuggen klicken, markiert das Makro die Stelle, an der es aufgehört hat zu laufen. Wenn Sie den Mauszeiger über eine der vorhandenen Variablen halten, können Sie sehen, was in ihnen gespeichert ist. Dies kann bei der Fehlersuche in unserem Code sehr nützlich sein.
Wir können dann auf die Schaltfläche Ausführen in der Menüsleiste klicken (oder F5 auf der Tastatur drücken), um die Ausführung des Makros fortzusetzen.
Haltepunkte zum Makro hinzufügen
Vor dem Start des Makros können wir Haltepunkte einfügen, um seine Ausführung an bestimmten Codezeilen anzuhalten.
Wir können den Code ausführen, indem wir auf die Schaltfläche Ausführen in der Menüleiste klicken oder die Taste F5 auf der Tastatur drücken. Das Makro wird am Haltepunkt angehalten.
Drücken Sie erneut die Schaltfläche Ausführen (in der Beschriftung steht jetzt Fortsetzen), um das Makro fortzusetzen, oder drücken Sie F5.
Es kann auch vorkommen, dass die Ausführung eines VBA-Makros angehalten werden muss. Dies kann auch mit den Methoden Wait und Sleep geschehen. Diese Methoden dienen eher zur Verzögerung des tatsächlichen Fortschritts des Makros als zur Fehlersuche im eigentlichen Code.
Diese Codezeile verzögert zum Beispiel die Ausführung des Makros um 5 Sekunden.
Application.Wait (Now + TimeValue("0:00:05"))