Excel VBA Wstrzymaj (przerwij / zatrzymaj) i wznów makro

Ten samouczek pokaże, jak wstrzymać (przerwać) i wznowić makro w programie Excel.

Możliwość wstrzymania makra podczas testowania napisanego kodu VBA jest przydatnym sposobem na ustalenie, gdzie w naszym kodzie mogą znajdować się „błędy”. Istnieje wiele sposobów na przerwanie działania makra, a następnie wznowienie go od miejsca, w którym makro zostało przerwane.

Kombinacja klawiszy Control i Break

Jeśli przytrzymamy klawisz Control, a następnie naciśniemy klawisz Pause/Break, gdy kod VBA jest uruchomiony, kod natychmiast zatrzyma się z komunikatem debugowania ostrzegającym nas, że działanie makra zostało przerwane.

Możemy wtedy nacisnąć Kontyntynuj w oknie dialogowym, które się pojawi, aby kontynuować uruchamianie makra. Alternatywnie, jeśli następnie naciśniemy przycisk Debug w oknie dialogowym, makro podświetli pozycję, w której przestało działać. Umieszczając kursor myszy nad istniejącymi zmiennymi, możemy zobaczyć, co jest przechowywane w zmiennych. Może to być bardzo przydatne podczas debugowania naszego kodu.

Następnie możemy kliknąć Biegać na wstążce (lub naciśnij F5 na klawiaturze), aby wznowić działanie makra.

Dodawanie punktów przerwania do makra

Przed uruchomieniem makra możemy wstawić punkty przerwania do makra, aby zatrzymać makro jako określone wiersze kodu.

Możemy uruchomić kod klikając na Biegać na Wstążce lub naciskając F5 na klawiaturze. Makro zatrzyma się w punkcie przerwania.

Naciśnij ponownie przycisk Uruchom (podpis będzie teraz mówić Kontynuuj), aby wznowić makro lub naciśnij F5.

Może się zdarzyć, że uruchomienie makra VBA może wymagać wstrzymania. Można to również zrobić za pomocą metod Wait i Sleep. Te metody są bardziej używane do opóźniania rzeczywistego postępu makra niż do debugowania rzeczywistego kodu.

Na przykład ten wiersz kodu opóźni uruchomienie makra, dopóki nie minie 5 sekund.

123 Podanie.Czekać (Ale już + Wartość czasu("0:00:05"))

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave