Excel VBA o błędzie Wznów dalej
Obsługa błędów jest bardzo przydatnym i istotnym mechanizmem do programowania języków, takich jak VBA Kontrola błędów lub zapobieganie im, co jest aspektem obsługi błędów, co oznacza podejmowanie skutecznych i znaczących środków wewnątrz skryptu VBA, aby uniknąć pojawienia się komunikatu wyskakującego błędu. Instrukcja Excel VBA o błędzie Wznów dalej ignoruje wiersz kodu, który powoduje błąd, i kontynuuje lub kieruje wykonanie do następnego wiersza po wierszu, który spowodował błąd.
UWAGA: W przypadku błędu Resume Next instrukcja nie naprawia błędów środowiska wykonawczego, jest to błąd ignorujący, gdzie wykonywanie programu VB będzie kontynuowane od wiersza, który spowodował błąd środowiska wykonawczego.Zasadniczo, W przypadku wznowienia błędu, następny jest używany, gdy chcesz zignorować błąd i kontynuować lub wznowić wykonywanie kodu do następnej komórki.
Rodzaje błędów w VBA
Poniżej znajdują się różne rodzaje błędów w VBA:
- Błąd składni lub błąd analizy.
- Błąd kompilacji lub kompilacji.
- Błąd czasu wykonywania.
- Błąd logiczny.
Powyższe błędy można naprawić za pomocą debugowania i instrukcji „On Error” w kodzie. Błądowi czasu wykonania można zapobiec za pomocą opcji On Error Resume Next.
Błąd środowiska wykonawczego VBA:
Przed wyjaśnieniem Wznów o błędzie Dalej, powinieneś zdawać sobie sprawę z błędu środowiska uruchomieniowego, gdy niemożliwe są instrukcje matematyczne lub warunki występujące w instrukcji, wtedy wystąpi ten błąd środowiska wykonawczego.
Przykłady Excel VBA o błędzie Wznów dalej
Poniżej znajdują się różne przykłady wznowienia o błędzie Dalej w programie Excel VBA:
Możesz pobrać ten szablon VBA po wznowieniu błędu Następny szablon Excel tutaj - VBA po wznowieniu błędu Następny szablon ExcelVBA On Error Resume Next - Przykład nr 1
Tutaj błąd zostanie zignorowany, a wykonanie kodu będzie kontynuowane. W poniższym przykładzie 6 nie można podzielić przez zero, jeśli uruchomisz go bez wpisywania instrukcji On Error Resume Next, wtedy wystąpi niżej wymieniony błąd czasu wykonywania.
Kod:
Sub RUNTIME_1 () MsgBox 6/0 End Sub
Jeśli przy błędzie Wznów następny wpisany w górnej części kodu po instrukcji SUB, ignoruje błąd czasu wykonywania i przechodzi do następnej instrukcji, uzyskuje wynik 6/2 (wyskakujące okienko komunikatu z wynikiem).
Kod:
Sub RUNTIME_2 () On Error Resume Next MsgBox 6/0 MsgBox 6/2 End Sub
VBA o błędzie Wznów dalej - przykład # 2
Mogę używać opcji On Error Resume Next w dowolnym miejscu kodu od początku do końca. W poniższym przykładzie muszę wykonać 3 obliczenia, tj
9/3 =?
9/0 =?
9/2 =?
W wyżej wspomnianym przykładzie można zaobserwować drugie obliczenie, w którym żadnej liczby nie można podzielić przez zero, tzn. 9 nie może być podzielone przez zero w drugim kroku. Załóżmy, że jeśli uruchomisz makro bez wpisywania instrukcji On Error Resume Next, teraz mogę wykonać kod krok po kroku za pomocą polecenia step into lub F8, aby zrozumieć, jak to działa.
Teraz uruchamiam powyższy kod, klikając często opcję Krok do lub klawisz F8, krok po kroku. Po prostu kopiuję powyższy kod i uruchamiam go krok po kroku, w pierwszym kroku obliczeń pojawia się okno dialogowe 3.
Kod:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Koniec Sub
Kiedy uruchamiam drugi wiersz kodu, poniżej wspomniany błąd czasu wykonania pojawia się na drugim etapie kodu, w którym żadnej liczby nie można podzielić przez zero, tzn. 9 nie może być podzielone przez zero w drugim kroku.
Kod:
Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Koniec Sub
Teraz, nawet jeśli kliknę na debugowanie, nie będzie mógł przejść dalej, gdzie zabierze mnie do drugiej linii kodu (zostanie podświetlony na żółto), gdzie muszę dokonać korekty. Więc tutaj, jeśli dalej klikniesz opcję Step Into lub klawisz F8, trzecie obliczenia w tym kodzie nie zostaną wykonane.
Aby naprawić lub obsłużyć ten błąd środowiska wykonawczego, muszę użyć lub wykonać instrukcję OnError Resume Next powyżej drugiego kodu lub na początku kodu poniżej podstacji. aby pominąć ten wiersz kodu i przejść do trzeciego kroku kodu i obliczyć wartość.
Kod:
Sub RUNTIME_30 () MsgBox 9/3 On Error Resume Next MsgBox 9/0 MsgBox 9/2 End Sub
LUB
Sub RUNTIME_31 () On Error Resume Next MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub
Teraz dodałem w przypadku błędu wznowienie następnej instrukcji do kodu, w której możesz użyć dowolnego z powyższych kodów, jeśli uruchomisz go krok po kroku, otrzymasz wyskakujące okienko z dwoma komunikatami, jeden to wyjściowy kod pierwszy i trzeci kod obliczenie. W przypadku wznowienia błędu Next zignoruje błąd czasu wykonywania w drugim kodzie i przejdzie do trzeciego kodu.
VBA o błędzie Wznów dalej - przykład # 2
Teraz zobaczymy kombinację Wznów o błędzie Dalej z błędem GoTo 0. W poniższym kodzie będzie ignorował błędy, dopóki nie osiągnie instrukcji On Error GoTo 0 . Po instrukcji On Error GoTo 0 kod wraca lub przechodzi do normalnego sprawdzania błędów i wyzwala oczekiwany błąd.
Kod:
Sub onError_Go_to_0_with_Resume_next () Po błędzie Wznów dalej Dalej Zabij „C: TempFile.exe” Po błędzie Zakres GoTo 0 („A1”). Wartość = 100 / „PETER” End Sub
Kiedy uruchomię powyższy kod, wyświetli błąd podziału, tj. Niedopasowanie typu (wartości liczbowej nie można podzielić przez tekst).
Teraz możesz zapisać skoroszyt jako „skoroszyt z obsługą makr programu Excel”. Klikając przycisk Zapisz jak w lewym rogu arkusza roboczego.
po ponownym otwarciu tego pliku programu Excel można użyć niżej wymienionego klawisza skrótu, tj
Klawisz skrótu Function + Alt + F11 pomaga uzyskać dostęp do wszystkich utworzonych kodów makr skoroszytu. Klawisz skrótu Function + Alt + F8 pomaga otworzyć okno dialogowe „Makro”, które zawiera wszystkie nazwy makr, w których można uruchomić wybrany kod makra.
Rzeczy do zapamiętania
- Błąd w czasie wykonywania zostanie po cichu uwięziony i zapisany w globalnym obiekcie Err
- Po błędzie Wznów Dalej zwykle zapobiegają przerwaniu wykonywania kodu.
- Właściwości obiektu błędu (Obiekt Err) są automatycznie usuwane, gdy funkcja Resume Next jest używana w procedurze obsługi błędów
Polecane artykuły
To jest przewodnik po VBA po wznowieniu błędu Dalej. Tutaj omawiamy różne rodzaje błędów w VBA Excel wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -
- Kompletny przewodnik po makrach VBA
- VBA DateDiff (przykłady z szablonem Excel)
- Jak korzystać z Poszukiwania celu w VBA?
- Arkusz ochronny VBA ze składnią
- VBA Environ