VBA o pogrešci Idi na 0 - Kako koristiti na pogrešci GoTo 0 u programu Excel VBA?

Excel VBA o pogrešci Idi na 0

VBA On Error GoTo 0 je izjava obrađivača pogrešaka koja se koristi za onemogućavanje omogućenog obrađivača pogrešaka u postupku. Označava se kao "Onemogućivač rukovatelja pogreškama".

Rukovanje pogreškama u bilo kojem od programskih jezika glavna je klasa koju svi koderi moraju razumjeti. VBA programski jezik, a također imamo tehnike za rješavanje pogrešaka u ovom programskom jeziku. "On Error Resume Next" omogućuje obradu pogrešaka, a "On Error GoTo 0" onemogućit će omogućeni obrađivač pogrešaka.

I "On Error Resume Next" i "On Error GoTo 0" su parovi koji se trebaju koristiti zajedno za efikasnost koda. Da bismo riješili pogrešku, moramo započeti s izjavom “On Error Resume Next” i završiti ovaj rukovatelj pogreškama. Moramo se koristiti izjavom “Na pogrešci prijeći na 0”.

Bilo koji linijski kôd napisan između ovih izjava ignorirat će bilo koju vrstu pogreške koja se dogodila u postupku.

Kako koristiti Izjavu o pogrešci GoTo 0?

Na primjer, pogledajte donji kod.

Kodirati:

Sub On_ErrorExample1 () Radni listovi ("List1"). Odaberite raspon ("A1"). Vrijednost = 100 radnih listova ("Sheet2"). Odaberite raspon ("A1"). Vrijednost = 100 Kraj Sub

Ono što čini gornji kod je da će prvo odabrati radni list s nazivom "Sheet1", a u ćeliju A1 umetnut će vrijednost 100.

Kodirati:

Radni listovi ("Sheet1"). Odaberite raspon ("A1"). Vrijednost = 100

Tada će odabrati radni list s nazivom "Sheet2" i umetnuti istu vrijednost.

Kodirati:

Radni listovi ("Sheet2"). Odaberite raspon ("A1"). Vrijednost = 100

Sad u radnoj knjižici imam donje listove.

Ne postoje listovi nazvani “Sheet1” i “Sheet2”. Kad pokrenemo kod, naići će na pogrešku poput dolje navedene.

Budući da ne postoji list s nazivom "Sheet1", naišao je na pogrešku "Subscript out of range". Da bih riješio ovu pogrešku, na vrh makronaredbe ću dodati izjavu obrađivača pogrešaka "Na sljedećem nastavku greške".

Kodirati:

Sub On_ErrorExample1 () O grešci Nastavi sljedeće radne listove ("List1"). Odaberite raspon ("A1"). Vrijednost = 100 radnih listova ("List2"). Odaberite raspon ("A1"). Vrijednost = 100 Kraj Sub

Sada pokrenite kod i pogledajte što će se dogoditi.

Neće dati poruke o pogrešci jer je omogućena izjava rukovatelja pogreškama Na greška Nastavi dalje .

Zamislite scenarij u kojem trebamo zanemariti pogrešku u slučaju nedostupnosti radnog lista "Sheet1", ali moramo obavijestiti ako ne postoji radni list pod nazivom "Sheet2".

Budući da smo na vrh dodali On Error Resume Next , počelo je obrađivati ​​pogrešku, ali istodobno moramo navesti koliko redaka trebamo ignorirati ovu pogrešku.

U ovom primjeru samo trebamo zanemariti pogrešku za prvi radni list, ali za drugi list nadalje. Trebamo doći do pogreške ako ne postoji radni list "Sheet2". Dakle, nakon prvog koda radnog lista dodaje se redak za onemogućavanje pogreške On Error GoTo 0.

Kodirati:

Sub On_ErrorExample1 () Na grešci Nastavi sljedeće radne listove ("Sheet1"). Odaberite raspon ("A1"). Vrijednost = 100 Na pogrešci Idite na 0 radnih listova ("Sheet2"). Odaberite raspon ("A1"). Value = 100 End Sub

Sada pokrenite kôd redak po redak da biste vidjeli utjecaj pritiskom na tipku F8.

Ako pritisnete tipku F8 kada izvršavanje koda skoči na sljedeći redak, izvršit će se zadatak aktivne linije. Sada je aktivna linija (žuto obojena linija) rukovatelj pogreškama “On Error Resume Next” (Upravljanje greškama dalje), a obrađivač pogrešaka će biti omogućen.

Sada se javlja bilo kakva pogreška. Ignorirat će se dok ne izvrši obradu pogreške, onemogući kôd izjave " On Error GoTo 0 ".

U prethodnom pokušaju naišli smo na pogreške, ali pritisnite još jednom tipku F8 i pogledajte čaroliju.

Bez davanja bilo kakve pogreške, nastavio je s izvršavanjem koda iako ne postoji radni list "Sheet2" za odabir. Sada ponovno pritisnite F8.

Budući da nije postojao List1, on ne može umetnuti vrijednost u ćeliju A1 kao 500, ali ono što čini jest da će umetnuti vrijednost 500 u ćeliju A1 ovisno o tome koji je radni list aktivan. Moj aktivni list kada izvršavam kôd bio je "Sheet3", tako da je vrijednost 100 umetnuta u ćeliju A1.

Sada je aktivni redak koda " On Error GoTo 0 " pritiskom na tipku F8. Ovaj će se linijski zadatak izvršiti.

Budući da se izvršava “On Error GoTo 0”, zaustavio je postupak rukovanja pogreškama i ponovno počeo prikazivati ​​pogreške ako se dogodi. Pritisnite tipku F8 i pogledajte pogrešku.

U prethodnom slučaju, bez pogreške GoTo 0, ignorirao je i ovu pogrešku, ali budući da smo dodali onemogućivač obrade pogrešaka, počeo je ponovno prikazivati ​​pogrešku.

Stvari koje treba ovdje zapamtiti

  • I na grešci Nastavi dalje i na grešci GoTo 0 mora se koristiti kao " Omogućivač rukovatelja pogreškama " i " Onemogućivač rukovatelja pogreškama ".
  • Bilo koji redak kodova između ove dvije izjave naiđe na pogrešku i bit će zanemaren.
  • Ako postoji izjava On Error GoTo 0, tada će nakon izlaska obrađivača pogreške potprocedura biti onemogućen.

Zanimljivi članci...