VBA o pogrešci Nastavi dalje - Primjeri VBA o pogrešci Nastavite dalje

Sadržaj:

Anonim

Excel VBA o pogrešci Nastavite dalje

Rukovanje pogreškama vrlo je koristan i značajan mehanizam za programske jezike kao što su kontrola ili prevencija VBA pogrešaka, što je aspekt postupanja s pogreškama, što znači poduzimanje djelotvornih i značajnih mjera unutar VBA skripte kako bi se izbjegla pojava skočne poruke o pogrešci. Izjava Excel VBA On Error Resume Next (Sljedeći ispis greške) ignorira liniju koda koja uzrokuje pogrešku i nastavlja ili usmjerava izvršenje do sljedećeg retka slijedeći liniju koja je uzrokovala pogrešku.

NAPOMENA: Na stranici o pogrešci Resume Sljedeća izjava ne popravlja pogreške u izvršavanju, to je pogreška ignoriranja tamo gdje će se izvođenje VB programa nastaviti iz retka koji je uzrokovao grešku izvršavanja.

U osnovi, Nakon nastavka greške sljedeći se koristi kada želite zanemariti pogrešku i nastaviti ili nastaviti izvršavanje koda u sljedeću ćeliju.

Vrste pogrešaka u VBA

Ispod su različite vrste pogrešaka u VBA:

  1. Pogreška sintakse ili pogreška razgledavanja.
  2. Pogreška pri sastavljanju ili sastavljanju.
  3. Runtime error.
  4. Logička pogreška.

Gore navedene pogreške mogu se otkloniti pomoću kôda za otklanjanje pogrešaka i „On Error“ izjave u kodu. Runtime error se može spriječiti pomoću On Error Resume Next.

VBA Runtime error:

Prije objašnjenja Dalje o pogrešci nastavite, trebali biste biti svjesni pogreške izvođenja kad su u izjavi nemogući matematički iskazi ili pojmovi, tada dolazi do ove pogreške izvršavanja.

Primjeri programa Excel VBA o pogrešci Nastavite dalje

Ispod su sljedeći primjeri sljedećeg nastavka o pogrešci u Excelu VBA:

Ovdje možete preuzeti VBA o pogrešci Resume Next Excel predložak ovdje - VBA On Error Resume Next Excel predložak

VBA o pogrešci Nastavite dalje - primjer 1

Ovdje će se pogreška zanemariti i izvršavanje koda će ići dalje. U dolje spomenutom primjeru 6 se ne može podijeliti s nulom, ako ga pokrenete bez unošenja izjave On Error Resume Next, tada se pojavljuje ispod navedene greške izvođenja.

Kodirati:

 Sub RUNTIME_1 () MsgBox 6/0 Kraj sub 

Ako je On Error Resume Next upisan na vrhu koda nakon SUB izraza, zanemaruje pogrešku izvršavanja i prelazi na sljedeću izjavu, što rezultira rezultatom 6/2 (Popup box s rezultatom).

Kodirati:

 Sub RUNTIME_2 () Na pogrešci Nastavi Dalje MsgBox 6/0 MsgBox 6/2 Kraj Sub 

VBA o pogrešci Nastavite dalje - primjer br. 2

Mogu koristiti On Error Resume Next bilo gdje u kodu od početka do kraja. U dolje navedenom primjeru moram napraviti 3 izračuna tj

9/3 =?

9/0 =?

9/2 =?

U gore navedenom primjeru možete promatrati drugi izračun u kojem se bilo koji broj ne može podijeliti s nulom, tj. 9 se u drugom koraku ne može podijeliti s nulom. Pretpostavimo da ako pokrenete makronaredbu bez unošenja izjave On Error Resume Next, sada mogu izvršavati kôd korak po korak uz pomoć koraka ili tipke F8 da bih shvatio kako to funkcionira.

Sada pokrećem gornji kôd, tako da često korak po korak kliknem na opciju korak Into ili tipku F8. Samo kopiram gornji kôd i započinjem ga izvoditi korak po korak, jer se pojavljuje prvi korak računanja.

Kodirati:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Krajnji pot 

Kad pokrenem drugi redak koda, ispod spomenute runtime pogreške pojavljuje se na drugom koraku koda, pri čemu se bilo koji broj ne može podijeliti s nulom, tj. 9 se ne može podijeliti s nulom u drugom koraku.

Kodirati:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Krajnji pot 

Ako čak i kliknem na program za uklanjanje pogrešaka, ne mogu nastaviti dalje, gdje će me odvesti do drugog retka koda (bit će označen žutom bojom), gdje moram obaviti ispravak. Dakle, ovdje, ako dalje kliknete na opciju Step Into ili tipku F8, treći izračun u ovom kodu neće se izvršiti.

Da bih ispravio ili upravljao ovom greškom izvršavanja, moram upotrijebiti ili izvršiti naredbu OnError Resume Next iznad drugog koda ili na početku koda ispod podstanice. tako da će preskočiti tu liniju koda i prijeći na treći korak koda i izračunati vrijednost.

Kodirati:

 Sub RUNTIME_30 () MsgBox 9/3 Na pogrešci Nastavi Dalje MsgBox 9/0 MsgBox 9/2 Kraj Pod 

ILI

 Sub RUNTIME_31 () Na pogrešci Nastavi Dalje MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 Kraj Pod 

Eto, ja sam kôdu greške nastavio sljedeću izjavu kod, gdje možete koristiti bilo koji od gornjih koda, ako ga pokrenete korak po korak, dobit ćete skočnu poruku s dvije poruke, jedna je izlazni prvi kôd, a treća kod Izračun. Pri ponovnom pogrešci, Dalje će zanemariti pogrešku izvršavanja u drugom kodu i preći na treći kôd.

VBA o pogrešci Nastavite dalje - primjer br. 2

Sada ćemo vidjeti kombinaciju nastavka greške i dalje s pogreškom GoTo 0. U donjem kôdu ignorirat će pogreške dok ne dođe do izjave o grešci GoTo 0 . Nakon izjave o pogrešci GoTo 0, kôd se vraća ili nastavlja s uobičajenom provjerom pogreške i aktivira očekivanu grešku.

Kodirati:

 Sub onError_Go_to_0_with_Resume_next () Na pogrešci Nastavi Sljedeće ubij "C: TempFile.exe" Na pogrešci GoTo 0 raspon ("A1") Vrijednost = 100 / "PETER" Kraj Sub 

Kad pokrenem gornji kôd, prikazat će pogrešku podjele, tj. Tip neusklađenosti (brojčana vrijednost se ne može podijeliti s tekstom).

Sada svoju radnu knjigu možete spremiti kao "radnu knjigu s makro omogućenim Excelom". Klikom na Spremi kao u lijevom kutu radnog lista.

kada ponovo otvorite ovu excel datoteku, možete upotrijebiti dolje spomenutu tipku prečaca, tj

Funkcija + Alt + F11 tipka s prečacima pomaže vam u pristupu svim stvorenim makro kodima radne knjige. Funkcija + Alt + F8 tipka s prečacima pomaže vam u otvaranju prozora dijaloškog okvira "Makro" koji sadrži sva imena makronaredbi, gdje možete pokrenuti određeni makro kod po vašem izboru.

Stvari koje treba zapamtiti

  • Pogreška vremena pokretanja bit će tiho zarobljena i pohranjena u globalni Err objekt
  • On Error Resume Next (Sljedeći postupak o pogrešci) Next obično sprečava prekid u izvršavanju koda.
  • Svojstva objekta pogreške (Err Object) automatski se uklanjaju kada se nastavi Resume Next u rutini postupanja s pogreškama

Preporučeni članci

Ovo je vodič za VBA o grešci Nastavi dalje. Ovdje smo raspravljali o različitim vrstama pogrešaka u VBA Excel, zajedno s nekoliko praktičnih primjera i preuzeti Excel predložak. Možete i pregledati naše druge predložene članke -

  1. Kompletan vodič za VBA makronaredbe
  2. VBA DateDiff (primjeri s Excelovim predloškom)
  3. Kako se koristi Traženje cilja u VBA?
  4. VBA zaštitni list sintaksom
  5. VBA okružje