VBA na pogrešci GoTo - Vrste izjava o pogreškama u VBA

Excel VBA na pogrešci GoTo

Pogreške su sastavni dio bilo kojeg kodirajućeg jezika, a VBA makronaredbe se ne razlikuju od ovoga. Po mom mišljenju, pronalazak razloga za pogrešku je 90% obavljenog posla, a 10% leži u tome kako ispraviti tu pogrešku. U svakom kodnom jeziku, koderi koriste svoj način rješavanja pogrešaka u svom kodiranju, pa tako i mi u VBA kodiranju. Često trebamo zanemariti pogrešku ili često možemo poželjeti prijeći na određene stvari kada se pogreška dogodi. "O pogrešci" je izjava koju trebamo koristiti u VBA za obradu pogrešaka.

Ova izjava ima tri vrste izjava, a ispod je popis.

  1. Na pogrešci Idi na 0
  2. Na pogrešci Idi (oznaka)
  3. Na grešci Nastavi dalje

U ovom ćemo članku vidjeti kako se ove tri izjave koriste u VBA kodiranju za obradu bilo koje vrste pogrešaka.

Kako koristiti VBA u izjavama o pogreškama?

# 1 - Pogreška Nastavi dalje

Kao što sama izjava kaže, "On Error Resume Next" znači kad god se pogreška dogodi u kodu "resume" sljedeći redak koda ignoriranjem koda retka pogreške. Sada pogledajte donji kod.

U donjem kodu spomenuo sam nazive radnog lista i zatražio da vrijednost unesem u prvu ćeliju kao "Ispitivanje pogreške".

Kodirati:

Sub On_Error_Resume_Next () Radni listovi ("Ws 1"). Odaberite raspon ("A1"). Value = "Ispitivanje pogreške" Radni listovi ("Ws 2"). Odaberite raspon ("A1"). Value = "Ispitivanje pogrešaka" Radni listovi ( "Ws 3"). Odaberite raspon ("A1"). Value = "Ispitivanje pogrešaka" Radni listovi ("Ws 4"). Odaberite raspon ("A1"). Value = "Testiranje pogreške" End Sub

Sada u radnoj knjižici imam donje radne listove.

  • Pokrenut ću kod i vidjeti što će se dogoditi.
  • Dobili smo pogrešku "Subscript Out of Range", kliknite "Debug" da biste vidjeli u kojem smo retku dobili pogrešku.
  • Tako smo u retku "Radni listovi (" Ws 3 "). Odaberi" dobili pogrešku. To je zato što u našoj radnoj knjizi ne postoji radni list s nazivom „Ws 3“, pa je došlo do pogreške.

U takvim ćemo slučajevima možda htjeti zanemariti pogrešku i nastaviti izvršavanje koda u sljedeći redak. Tu dolazi do izražaja naš rukovatelj pogreškama "On Error Resume Next".

  • Sve što trebamo učiniti je dodati redak "On Error Resume Next" na početku makronaredbe.

Sada izvršite ovaj kôd i on neće prikazati nikakvu poruku o pogrešci, jer kad god kod naiđe na pogrešku, on će zanemariti pogrešku i nastaviti se na sljedeći redak koda.

# 2 - Pogreška GoTo 0

Ovo nije rukovatelj pogreškama, već pokretač poruka o pogrešci nakon što onemogućimo poruku pogreške pomoću izjave "Na sljedećem nastavku greške".

Jednom kada koristite izjavu „Nastavi dalje“, VBA makronaredbe započinju ignorirati bilo kakvu pogrešku i nastave sa sljedećim retkom kodova. Ali ne želimo da se to događa cijelo vrijeme jer neke pogreške trebamo namjerno ignorirati, a druge trebamo obavijest.

Ako bilo koji određeni skup koda baci pogrešku u taj blok koda, samo trebamo zanemariti pogreške u drugim dijelovima koda. Ne želimo zanemariti pogrešku.

  • Pogledajte donju sliku kako biste upotrijebili izjavu "On Error GoTo 0".

Dakle, sada će se pogreške ignorirati sve dok kôd ne pronađe omogućavanje obavijesti o pogrešci "On Error GoTo 0" kada ovaj red koda izvrši makronaredbe natrag u normalu i počne bacati poruke o pogreškama kao i obično.

# 3 - Oznaka pogreške GoTo

Vidjeli smo kako zanemariti pogrešku i kako omogućiti povratno obavještavanje o pogrešci. Sada pomoću ove metode možemo prijeći na određeni redak koda.

U ovoj metodi "Oznaka" znači da ovoj naljepnici možemo dati bilo koji naziv, a istu oznaku treba navesti i na traženom retku koda.

Na primjer, pogledajte isti kod iz gornjeg primjera.

Izvršimo sada redak po red pritiskom na funkcijsku tipku F8.

Sada će makro pročitati izjavu rukovatelja pogreškama; pritisnite tipku F8 izvršite prva 2 koda radnog lista.

Sada će makronaredba izvršiti treći kôd radnog lista, kojeg nema u radnoj knjizi, pritisnite tipku F8 i pogledajte što će se dogoditi.

Budući da je makronaredba naišla na pogrešku u donjem retku koda, preskočila je na oznaku voditelja pogrešaka "ErrorMessage", koja je opisana u izjavi "On Error GoTo (Label)".

Sada će okvir za poruku prikazati poruku kao "Došlo je do pogreške i izlaska iz makronaredbe."

Stvari koje treba zapamtiti

  • Vba On Error GoTo 0 omogućit će ponovno obavijest o pogrešci, pa nemojte zaboraviti dodati ovo nakon isporuke obrađivača pogrešaka.
  • Morate biti apsolutno sigurni u kojem dijelu koda želite zanemariti pogrešku, zato priložite obrađivač pogrešaka samo za taj blok koda.

Zanimljivi članci...