Rukovatelji greškama za Excel makronaredbe

Rukovatelji pogreškama omogućuju vam da odredite što će se dogoditi kada dođe do pogreške dok se vaš Excel makro kôd izvodi. Rukovatelji greškama su linije slične sljedećem:

U slučaju pogreške Idite na MyError

Bez rukovatelja pogreškama, svaka pogreška koja se pojavi u vašem kodu potaknut će Excel da aktivira poruku o pogrešci koja nije od pomoći koja obično neće jasno prenijeti što se dogodilo. Međutim, uz pomoć rukovatelja pogreškama, možete odabrati ignorirati pogrešku ili elegantno izaći iz koda s vlastitom porukom korisniku.

Postoje tri vrste izjava On Error:

  • U slučaju pogreške GoTo SomeLabel: kod skače na navedenu oznaku.

  • U slučaju pogreške nastavi dalje: pogreška se zanemaruje i kod se nastavlja.

  • U slučaju pogreške GoTo 0: VBA se vraća na normalno ponašanje provjere grešaka.

U slučaju pogreške GoTo SomeLabel

Ponekad pogreška u vašem kodu znači da morate elegantno napustiti proceduru i dati svojim korisnicima jasnu poruku. U tim situacijama možete koristiti naredbu On Error GoTo da kažete Excelu da skoči na određeni redak koda.

Na primjer, u sljedećem malom dijelu koda kažete Excelu da podijeli vrijednost u ćeliji A1 s vrijednošću u ćeliji A2, a zatim postavite odgovor u ćeliju A3. Lako. Što bi moglo poći po zlu?

Podmakro1()
Raspon("A3").Vrijednost = Raspon("A1").Vrijednost / Raspon("A2").Vrijednost
Kraj Sub

Kako se ispostavilo, dvije velike stvari mogu poći po zlu. Ako ćelija A2 sadrži 0, dobit ćete pogrešku dijeljenja s 0. Ako ćelija A2 sadrži nenumeričku vrijednost, dobit ćete pogrešku nepodudarnosti tipa.

Kako biste izbjegli neugodnu poruku o pogrešci, možete reći Excelu da u slučaju pogreške želite da izvršenje koda skoči na oznaku pod nazivom MyExit.

U sljedećem kodu iza oznake MyExit slijedi poruka korisniku koja daje prijateljski savjet umjesto gadne poruke o pogrešci. Također imajte na umu Exit Sub red prije oznake MyExit, koji osigurava da će kod jednostavno izaći ako ne dođe do greške:

Podmakro1()
U slučaju pogreške GoTo MyExit
Raspon("A3").Vrijednost = Raspon("A1").Vrijednost / Raspon("A2").Vrijednost
Izlaz pod
moj izlaz:
MsgBox "Molimo koristite važeće brojeve koji nisu nula"
Kraj Sub

U slučaju pogreške Nastavi dalje

Ponekad želite da Excel zanemari pogrešku i jednostavno nastavi s pokretanjem koda. U tim situacijama možete koristiti naredbu On Error Resume Next.

Na primjer, sljedeći dio koda namijenjen je brisanju datoteke pod nazivom GhostFile.exe iz direktorija C:Temp. Nakon što se datoteka obriše, lijep okvir s porukom govori korisniku da je datoteka nestala:

Podmakro1()
Ubijte "C:TempGhostFile.exe"
MsgBox "Datoteka je izbrisana."
Kraj Sub

Kod radi sjajno ako doista postoji datoteka za brisanje. Ali ako iz nekog razloga datoteka pod nazivom GhostFile.exe ne postoji na C: Temp pogonu, pojavljuje se pogreška.

U ovom slučaju, nije vas briga ako datoteka nije tamo jer ste je ionako namjeravali izbrisati. Dakle, jednostavno možete zanemariti pogrešku i nastaviti s kodom.

Korištenjem naredbe On Error Resume Next, kod se izvodi bez obzira na to postoji li ciljana datoteka ili ne:

Podmakro1()
U slučaju pogreške Nastavi dalje
Ubijte "C:TempGhostFile.exe"
MsgBox "Datoteka je izbrisana."
Kraj Sub

U slučaju pogreške Idite na 0

Kada koristite određene izraze pogreške, možda će biti potrebno resetirati ponašanje provjere grešaka VBA. Da biste razumjeli što to znači, pogledajte sljedeći primjer.

Ovdje prvo želite izbrisati datoteku pod nazivom GhostFile.exe iz direktorija C:Temp. Kako biste izbjegli pogreške koje mogu proizaći iz činjenice da ciljana datoteka ne postoji, koristite naredbu On Error Resume Next. Nakon toga, pokušate napraviti neku sumnjivu matematiku dijeleći 100/Mike:

Podmakro1()
U slučaju pogreške Nastavi dalje
Ubijte "C:TempGhostFile.exe"
Raspon("A3").Vrijednost = 100 / "Mike"
Kraj Sub

Izvođenje ovog dijela koda trebalo bi generirati pogrešku zbog nejasne matematike, ali ne. Zašto? Zato što je posljednja instrukcija koju ste dali kodu bila On Error Resume Next. Svaka pogreška koja se pojavi nakon tog retka učinkovito se zanemaruje.

Da biste riješili ovaj problem, možete koristiti naredbu On Error GoTo 0 za nastavak normalnog ponašanja provjere grešaka:

Podmakro1()
U slučaju pogreške Nastavi dalje
Ubijte "C:TempGhostFile.exe"
U slučaju pogreške Idite na 0
Raspon("A3").Vrijednost = 100 / "Mike"
Kraj Sub

Ovaj će kod zanemariti pogreške sve do naredbe On Error GoTo 0. Nakon te izjave, kod se vraća na normalnu provjeru pogreške i pokreće očekivanu pogrešku koja proizlazi iz nejasne matematike.

Leave a Comment

Kako postaviti upit u bazu podataka MS Access 2019

Kako postaviti upit u bazu podataka MS Access 2019

Naučite kako postaviti upite u Access bazi podataka uz jednostavne korake i savjete za učinkovito filtriranje i sortiranje podataka.

Osnove tabulatora u programu Word 2013

Osnove tabulatora u programu Word 2013

Tabulatori su oznake položaja u odlomku programa Word 2013 koje određuju kamo će se točka umetanja pomaknuti kada pritisnete tipku Tab. Otkrijte kako prilagoditi tabulatore i optimizirati svoj rad u Wordu.

Kako odabrati i poništiti odabir blokova teksta u Wordu 2010

Kako odabrati i poništiti odabir blokova teksta u Wordu 2010

Word 2010 nudi mnoge načine označavanja i poništavanja odabira teksta. Otkrijte kako koristiti tipkovnicu i miš za odabir blokova. Učinite svoj rad učinkovitijim!

Kako uvući pasus u Wordu 2013

Kako uvući pasus u Wordu 2013

Naučite kako pravilno postaviti uvlaku za odlomak u Wordu 2013 kako biste poboljšali izgled svog dokumenta.

Kako otvoriti i zatvoriti PowerPoint 2019 prezentacije

Kako otvoriti i zatvoriti PowerPoint 2019 prezentacije

Naučite kako jednostavno otvoriti i zatvoriti svoje Microsoft PowerPoint 2019 prezentacije s našim detaljnim vodičem. Pronađite korisne savjete i trikove!

Kako crtati jednostavne objekte u PowerPointu 2013

Kako crtati jednostavne objekte u PowerPointu 2013

Saznajte kako crtati jednostavne objekte u PowerPoint 2013 uz ove korisne upute. Uključuje crtanje linija, pravokutnika, krugova i više.

Kako filtrirati podatke u programu Access 2016

Kako filtrirati podatke u programu Access 2016

U ovom vodiču vam pokazujemo kako koristiti alat za filtriranje u programu Access 2016 kako biste lako prikazali zapise koji dijele zajedničke vrijednosti. Saznajte više o filtriranju podataka.

Formule za zaokruživanje brojeva u Excelu

Formule za zaokruživanje brojeva u Excelu

Saznajte kako koristiti Excelove funkcije zaokruživanja za prikaz čistih, okruglih brojeva, što može poboljšati čitljivost vaših izvješća.

Kako dizajnirati različita zaglavlja i podnožja za različite stranice u programu Word 2013

Kako dizajnirati različita zaglavlja i podnožja za različite stranice u programu Word 2013

Zaglavlje ili podnožje koje postavite isto je za svaku stranicu u vašem Word 2013 dokumentu. Otkrijte kako koristiti različita zaglavlja za parne i neparne stranice.

Excel izvješća: prilagođeno oblikovanje brojeva

Excel izvješća: prilagođeno oblikovanje brojeva

Poboljšajte čitljivost svojih Excel izvješća koristeći prilagođeno oblikovanje brojeva. U ovom članku naučite kako se to radi i koja su najbolja rješenja.