Obsługa błędów VBA w programie Excel
W VBA, kiedy pracujemy z kodami, możemy napotkać wiele różnych typów błędów, a sposób rozwiązywania tych błędów jest znany jako Obsługa błędów, teraz mogą wystąpić błędy, które są popełnione w składni, która sama wyróżnia się, podkreśla to, ale gdy jest jakiś błąd który jest poza zakresem lub coś, co nie istnieje excel daje nam wyskakujące okienko dla tego samego, ważne jest, aby wiedzieć, który kod błędu jest dla jakiego błędu, aby zidentyfikować błąd w kodzie.
W Excelu VBA, wykonując dowolny zestaw kodów, otrzymujemy pewne błędy. Niektóre z tych błędów to błędy składniowe; niektóre są błędami, których nie można usunąć. Błąd składni występuje, gdy popełniony przez użytkownika jest podświetlony na czerwono przez sam program Excel. Ale jeśli wystąpi jakikolwiek inny błąd czasu wykonywania, jak sobie z nim radzimy i jak możemy wyjść poza to, omówimy w tym artykule.
Oprócz błędów składniowych, inne błędy czasu wykonania muszą być obsługiwane podczas wykonywania dowolnego zestawu kodów. Najpierw pozwólcie, że podam przykład tego, jak występuje drugi błąd w czasie wykonywania. Spójrz na poniższy kod,

To jest przykładowy kod, po wykonaniu zwróci to, co jest zapisane w funkcji msgbox. Ale jak widzimy, w drugiej linii kodu znajduje się 4/0, co nie jest możliwe w kategoriach matematycznych, więc zwróci błąd wykonania. Wykonajmy powyższy kod i zobaczmy jaki błąd otrzymamy.

To jest błąd, który otrzymujemy podczas wykonywania podanego kodu. Teraz, jak sobie z tym poradzimy, jest wykonywane przez obsługę błędów.
Istnieją dwie metody obsługi błędów:
- W przypadku błędu Goto i
- Przy błędzie Wznów Dalej.
Wyjaśnienie
Jak wyjaśniono powyżej, w VBA otrzymujemy wiele rodzajów błędów. Niektóre to składnia, a inne czas wykonywania. Błędy składniowe są już zaznaczone na czerwono, na przykład patrz poniższy zrzut ekranu,

Podczas gdy drugi to błędy czasu wykonywania. Zasadniczo program Excel wykona następujące trzy rzeczy: albo wyświetli błąd, albo zignoruje ten błąd, albo wyświetli określony zestaw instrukcji. Aby wykonać takie zadania, musimy wydawać instrukcje, a nazywa się to obsługą błędów.
Jak radzić sobie z błędami w kodzie VBA?
Przykład 1
W pierwszym przykładzie weźmy pierwszy kod, który wzięliśmy jako demonstrację. W powyższym przykładzie widzieliśmy, że kod podaje błąd czasu wykonania w drugiej funkcji msgbox.
Napisz poniższy kod po otwarciu podfunkcji,
Kod:
Sub Sample () On Error Resume Next MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Teraz, gdy wykonujemy powyższy kod, widzimy, że wiersz kodu, który zawiera błąd, nie jest wykonywany. Excel pomija tę linię i wznawia w następnej linii.

Istnieje inna metoda obsługi błędu to instrukcja VBA Goto. Zapewniamy excel jako miejsce docelowe, do którego można się udać, gdy znajdzie błąd. Zamiast poprzedniego kodu obsługi błędów wstawiliśmy, zapisujemy następujący kod,
Kod:
Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Dajemy excel Az jako miejsce docelowe, do którego należy przejść, jeśli znajdzie błąd. Teraz po msgbox napisz kolejny kod jak poniżej,
Kod:
Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gotowe: Zakończ Sub

Teraz musimy zdefiniować miejsce docelowe az jako to, co powinno zrobić, gdy program Excel znajdzie błąd w kodzie.
Kod:
Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gotowe: Zakończ Sub az: MsgBox "To jest błąd" & Err.Description End Sub

Teraz, gdy uruchamiamy ten kod, widzimy wyświetlany wynik.

To jest pierwszy wynik pola msg, a ponieważ wiemy, że w następnej linii naszego kodu wystąpił błąd, zobaczmy, jaki wynik da program Excel.

Opis err.description powyżej w kodzie pomaga nam dokładnie pokazać, jaki błąd wystąpił w naszym kodzie.
Przykład nr 2
Dowiedzieliśmy się, jak radzić sobie z błędami w naszych kodach. Spójrzmy na inny przykład, jak radzić sobie z błędami. Rozważmy następujący kod jako nasz drugi przykład.

Mamy nieco podobny błąd z przykładu 1. Błąd znajduje się w wierszu d = i / b. Teraz zajmiemy się tymi błędami, używając dwóch metod opisanych powyżej.
Napisz poniższy kod po otwarciu podfunkcji,
Kod:
Sub Sample2 () On Error Resume Next bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Teraz, gdy wykonujemy nasz kod, widzimy, że ignoruje on drugą linię i po prostu wyświetla wartość C.

Powyższa procedura obsługi błędów była następnym wznowieniem, a teraz użyjemy opcji Przejdź do, w której powiemy, że celujemy, gdy napotka błąd. Zapisz następujący kod,
Kod:
Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Bx jest miejscem docelowym podanym, gdy napotka błąd po zapisaniu przez msgbox D następującego kodu,
Kod:
Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub

Teraz musimy zdefiniować miejsce docelowe Bx, co ma zrobić, gdy napotka błąd, więc zapisz następujący kod,
Kod:
Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox „To jest kolejny błąd” & Err.Description End Sub

Teraz, gdy wykonujemy kod, widzimy, że program Excel najpierw podaje nam wartość C.

Teraz w kolejnym kroku wyświetli nam podpowiedź, którą podaliśmy, gdy napotka błąd.

W ten sposób radzimy sobie z normalnymi błędami uruchomieniowymi w Excel VBA.
Rzeczy do zapamiętania
Jest kilka rzeczy, o których musimy pamiętać o obsłudze błędów:
- Po wznowieniu błędu Dalej ignoruje błąd.
- W przypadku błędu GoTo Daje doskonałe miejsce docelowe, gdy napotka błąd.
- Opis służy do pokazania dokładnego błędu, który wystąpił u użytkownika.