W VBA możesz zaprogramować swój kod tak, aby wyszedł z Sub za każdym razem, gdy wystąpi błąd. Aby to zrobić, użyj W przypadku błędu Przejdź do oraz Wyjście Sub.
On Error Goto informuje VBA, że w przypadku napotkania błędu „Przejdź do” określonej sekcji kodu. Były:
1 | W przypadku błędu Przejdź do obsługi błędów |
Z poziomu tej sekcji możesz następnie powiedzieć VBA, aby wyszedł z Sub, aby wyjść z procedury podrzędnej:
12 | Obsługa błędów:Wyjście Sub |
Czytaj dalej, aby zobaczyć te wiersze kodu w akcji…
Wyjdź z Sub na błąd w VBA
W tym przykładzie wygenerujemy błąd dzieląc przez zero:
1 | ja = 5 / 0 |
Zobacz pełny kod poniżej. Kiedy VBA odczyta błąd, „przejdzie” do sekcji ErrorHandler kodu i wyjdzie:
123456789101112131415 | Błąd podtestu ()Dim i jako liczba całkowitaW przypadku błędu Przejdź do obsługi błędówja = 5 / 0„Zrób coś z iMsgBox iWyjście SubObsługa błędów:MsgBox "Jeśli błąd, wyjdź z Sub"Wyjście SubNapis końcowy |
Aby określić obsługę błędów, musisz najpierw zadeklarować W przypadku błędu Przejdź do oświadczenie. Należy to zadeklarować na początku Subskrypcji:
1 | W przypadku błędu Przejdź do obsługi błędów |
Następnie musisz zadeklarować kod obsługi błędów. Zwykle znajduje się na końcu kodu:
123 | Obsługa błędów:MsgBox "Jeśli błąd, wyjdź z Sub"Wyjście Sub |
Dodajemy „Exit Sub” nad ErrorHandler, ponieważ chcemy uruchomić kod ErrorHandler tylko wtedy, gdy wystąpi błąd.
12345 | Wyjście SubObsługa błędów:MsgBox "Jeśli błąd, wyjdź z Sub"Wyjście SubNapis końcowy |
Jeśli uruchomisz Sub, dojdzie do błędu z powodu dzielenia przez zero. W tym momencie zostanie wykonany kod obsługi błędów. Pojawi się okno komunikatu i Sub zostanie opuszczony.
Obraz 1. VBA przy błędzie Wyjdź Sub
Jeśli chcesz dowiedzieć się, jak zakończyć wykonywanie kodu w VBA, kliknij ten link: Koniec VBA
Jeśli chcesz dowiedzieć się, jak wyjść z podrzędnej lub funkcji, kliknij ten link: VBA Wyjdź z podrzędnej lub funkcji