Kako koristiti izjavu OnError u programu Excel 2016 VBA

Kada se trebate nositi s pogreškama u Excel VBA, možete koristiti naredbu OnError. Međutim, prvo morate znati nekoliko stvari. Izjavu On Error možete koristiti na tri načina.

Sintaksa Što to radi
Na oznaci Pogreška GoTo Nakon izvršenja ovog izraza, VBA nastavlja s izvršavanjem
naredbe koja slijedi navedenu oznaku. Morate uključiti dvotočku
nakon oznake kako bi je VBA prepoznao kao oznaku.
U slučaju pogreške Idite na 0 Nakon izvršenja ove izjave, VBA nastavlja s uobičajenim
ponašanjem provjere grešaka. Upotrijebite ovu naredbu nakon korištenja jedne od
drugih izjava On Error ili kada želite ukloniti rukovanje pogreškama
u svojoj proceduri.
U slučaju pogreške Nastavi dalje Nakon izvršenja ove naredbe, VBA jednostavno zanemaruje sve pogreške
i nastavlja izvršavanje sa sljedećim izrazom.

Nastavak nakon greške

U nekim slučajevima jednostavno želite da se rutina elegantno završi kada dođe do pogreške. Na primjer, možete prikazati poruku koja opisuje pogrešku, a zatim izaći iz postupka. (Primjer EnterSquareRoot5 prikazan ranije koristi ovu tehniku.) U drugim slučajevima, ako je moguće, želite se oporaviti od pogreške.

Da biste se oporavili od pogreške, morate koristiti naredbu Resume. Ovo briše stanje pogreške i omogućuje vam da nastavite s izvršavanjem na nekom mjestu. Izjavu Resume možete koristiti na tri načina.

Sintaksa Što to radi
Životopis Izvršenje se nastavlja s naredbom koja je uzrokovala pogrešku. Upotrijebite
ovo ako vaš kod za rukovanje pogreškama ispravi problem i
u redu je nastaviti.
Nastavi Sljedeći Izvršenje se nastavlja s naredbom odmah nakon
naredbe koja je uzrokovala pogrešku. Ovo u biti zanemaruje
pogrešku.
Oznaka životopisa Izvršenje se nastavlja na oznaci koju navedete.

Sljedeći primjer koristi naredbu Resume nakon što se pojavi pogreška:

Sub EnterSquareRoot6()
  Dim Num kao varijanta
  Priguši poruku kao niz
  Dim Ans As Integer
Pokušajte ponovo:
' Postavite rukovanje pogreškama
  U slučaju pogreške Idite na BadEntry
' Zatražite vrijednost
  Num = InputBox ("Unesite vrijednost")
  Ako je Num = ““ Zatim izađite iz Sub
' Umetnite kvadratni korijen
  ActiveCell.Value = Sqr(Broj)
  Izlaz pod
BadEntry:
  Poruka = ​​Broj pogreške & “: “ & Pogreška (Broj pogreške)
  Poruka = ​​Poruka & vbNewLine & vbNewLine
  Poruka = ​​Poruka & "Provjerite je li odabran raspon,"
  Poruka = ​​Poruka & "list nije zaštićen,"
  Poruka = ​​Poruka & "i unesete nenegativnu vrijednost."
  Poruka = ​​Msg & vbNewLine & vbNewLine & "Pokušati ponovo?"
  Ans = MsgBox(Msg, vbYesNo + vbCritical)
  Ako je Ans = vbYes Zatim Nastavite Pokušajte ponovo
Kraj Sub

Ovaj postupak ima drugu oznaku: TryAgain. Ako dođe do pogreške, izvršavanje se nastavlja na oznaci BadEntry, a kod prikazuje poruku ispod. Ako korisnik odgovori klikom na Da, pokreće se naredba Resume, a izvršenje se vraća na oznaku TryAgain. Ako korisnik klikne Ne, postupak završava.

Kako koristiti izjavu OnError u programu Excel 2016 VBA

Ako dođe do pogreške, korisnik može odlučiti hoće li pokušati ponovno.

Primijetite da poruka o pogrešci također uključuje broj pogreške, zajedno sa "službenim" opisom pogreške.

Naredba Nastavi briše stanje pogreške prije nastavka. Da biste to vidjeli, pokušajte zamijeniti sljedeću izjavu za pretposljednju izjavu u prethodnom primjeru:

Ako je Ans = vbYes Onda idite na TryAgain

Kôd ne radi ispravno ako koristite GoTo umjesto Resume. Za demonstraciju unesite negativan broj. Dobit ćete upit za pogrešku. Kliknite Da za ponovni pokušaj, a zatim unesite drugi negativan broj. Ova druga pogreška nije zarobljena jer izvorni uvjet pogreške nije obrisan.

Ukratko, rukovanje pogreškama

Kako bismo vam pomogli da sve ovo rješavanje grešaka bude jasno, evo kratkog i prljavog sažetka. Blok koda za rukovanje pogreškama ima sljedeće karakteristike:

  • Počinje odmah nakon oznake navedene u izjavi On Error.

  • Vaša makronaredba bi ga trebala doseći samo ako dođe do pogreške. To znači da morate koristiti izraz kao što je Exit Sub ili Exit Function neposredno prije oznake.

  • Može zahtijevati izjavu o životopisu. Ako odaberete da ne prekinete proceduru kada dođe do pogreške, morate izvršiti naredbu Resume prije povratka na glavni kod.

Znati kada zanemariti pogreške

U nekim je slučajevima sasvim u redu zanemariti pogreške. Tada dolazi do izražaja izjava On Error Resume Next.

Sljedeći primjer prolazi kroz svaku ćeliju u odabranom rasponu i pretvara vrijednost u njezin kvadratni korijen. Ovaj postupak generira poruku o pogrešci ako bilo koja ćelija u odabiru sadrži negativan broj ili tekst:

Sub SelectionSqrt()
  Zatamnjena ćelija As Range
  Ako TypeName(Odabir) <> “Range” Zatim izađite iz Sub
  Za svaku ćeliju u odabiru
    cell.Value = Sqr(cell.Value)
  Sljedeća ćelija
Kraj Sub

U ovom slučaju, možda ćete htjeti jednostavno preskočiti bilo koju ćeliju koja sadrži vrijednost koju ne možete pretvoriti u kvadratni korijen. Možete stvoriti sve vrste mogućnosti provjere grešaka korištenjem If-Then struktura, ali možete osmisliti bolje (i jednostavnije) rješenje jednostavnim ignoriranjem pogrešaka koje se pojavljuju.

Sljedeća rutina to postiže korištenjem naredbe On Error Resume Next:

Sub SelectionSqrt()
  Zatamnjena ćelija As Range
  Ako TypeName(Odabir) <> “Range” Zatim izađite iz Sub
  U slučaju pogreške Nastavi dalje
  Za svaku ćeliju u odabiru
    cell.Value = Sqr(cell.Value)
  Sljedeća ćelija
Kraj Sub

Općenito, možete koristiti naredbu On Error Resume Next ako smatrate da su pogreške bezopasne ili nevažne za vaš zadatak.

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.