VBA On Error GoTo - Tipuri de declarații de eroare în VBA

Excel VBA On Error GoTo

Erorile sunt parte integrantă a oricărui limbaj de codificare, iar macrocomenzile VBA nu diferă de aceasta. În opinia mea, găsirea de ce apare eroarea este 90% din treaba realizată, iar 10% constă în modul de remediere a acestei erori. În fiecare limbaj de codificare, programatorii își folosesc propriul mod de a gestiona erorile în codare, așa că și noi îl folosim în codarea VBA. De multe ori, trebuie să ignorăm eroarea sau, de multe ori, putem dori să mergem la anumite lucruri atunci când apare eroarea. „On Error” este declarația pe care trebuie să o folosim în VBA pentru a gestiona erorile.

Această afirmație are trei tipuri de afirmații, iar mai jos sunt lista.

  1. La Eroare Goto 0
  2. On Error Goto (etichetă)
  3. La eroare Reluați în continuare

În acest articol, vom vedea cum aceste trei declarații sunt utilizate în codificarea VBA pentru a gestiona orice fel de erori.

Cum se utilizează declarațiile de eroare VBA?

# 1 - La eroare Reluați în continuare

Așa cum spune declarația în sine, „On Error Resume Next” înseamnă de fiecare dată când apare eroarea în codul „reluați” următoarea linie a codului, ignorând codul liniei de eroare. Acum aruncați o privire la codul de mai jos.

În codul de mai jos, am menționat numele foilor de lucru și am cerut să introduc valoarea în prima celulă ca „Testare erori”.

Cod:

Sub On_Error_Resume_Next () Foi de lucru ("Ws 1"). Selectați Range ("A1"). Value = "Error Testing" Worksheets ("Ws 2"). Selectați Range ("A1"). Value = "Error Testing" Worksheets ( "Ws 3"). Selectați Range ("A1"). Value = "Testare erori" Foi de lucru ("Ws 4"). Selectați Range ("A1"). Value = "Error Testing" End Sub

Acum am fișele de lucru de mai jos în registrul meu de lucru.

  • Voi rula codul și voi vedea ce se întâmplă.
  • Am primit eroarea „Subscript Out of Range”, faceți clic pe „Debug” pentru a vedea în ce linie am primit eroarea.
  • Așadar, în linia „Foi de lucru („ Ws 3 ”). Selectați”, am primit o eroare. Acest lucru se datorează faptului că, în registrul nostru de lucru, nu există nicio foaie de lucru numită „Ws 3”, deci a apărut o eroare.

În astfel de cazuri, este posibil să dorim să ignorăm eroarea și să reluăm executarea codului la următoarea linie. Aici intervine gestionarul de erori „On Error Resume Next”.

  • Tot ce trebuie să facem este să adăugăm linia „On Error Resume Next” la începutul macro-ului.

Acum executați acest cod și nu va afișa niciun mesaj de eroare, deoarece ori de câte ori codul întâmpină o eroare, acesta va ignora eroarea și va relua la următoarea linie de cod.

# 2 - La eroare GoTo 0

Acesta nu este un instrument de gestionare a erorilor, ci mai degrabă un activator de mesaje de eroare după ce dezactivăm mesajul de eroare utilizând instrucțiunea „On Error Resume Next”.

Când folosiți instrucțiunea „Reluați următorul”, macrocomenzile VBA încep să ignore orice fel de eroare care apare și continuă cu următoarea linie de coduri. Dar nu vrem ca acest lucru să se întâmple tot timpul, deoarece unele erori trebuie să le ignorăm intenționat, altele avem nevoie de o notificare.

Dacă un anumit set de cod aruncă o eroare în acel bloc de cod, trebuie doar să ignorăm erorile din alte părți ale codului. Nu vrem să ignorăm eroarea.

  • Uitați-vă la imaginea de mai jos pentru utilizarea declarației „On Error GoTo 0”.

Deci, acum erorile vor fi ignorate până când codul găsește eroarea notifică activatorul „On Error GoTo 0” odată ce această linie de cod execută macrocomenzile înapoi la normal și începe să lanseze mesaje de eroare ca de obicei.

# 3 - La eticheta GoTo de eroare

Am văzut cum să ignorăm eroarea și cum să activăm notificarea erorii. Acum, folosind această metodă, putem merge la o anumită linie de cod.

În această metodă, „Etichetă” înseamnă că putem da orice nume acestei etichete și aceeași etichetă ar trebui să fie dată și la linia de cod necesară.

De exemplu, uitați-vă la același cod din exemplul de mai sus.

Acum să executăm codul rând cu rând apăsând tasta funcțională F8.

Acum macro va citi declarația de gestionare a erorilor; apăsați tasta F8 executați primul cod 2 foaie de lucru.

Acum macro-ul este pe cale să execute al treilea cod de foaie de lucru, care nu se află în registrul de lucru, apăsați tasta F8 și vedeți ce se întâmplă.

Deoarece macro-ul a întâmpinat o eroare în linia de cod de mai jos, a trecut la eticheta de gestionare a erorilor „ErrorMessage”, care a fost descrisă prin instrucțiunea „On Error GoTo (Label)”.

Acum, caseta de mesaj va afișa mesajul ca „Eroare apărută și ieșirea din macro”.

Lucruri de amintit

  • Vba On Error GoTo 0 va activa din nou notificarea de eroare, deci nu uitați să adăugați acest lucru după ce ați furnizat un handler de eroare.
  • Trebuie să fiți absolut sigur în ce parte a codului doriți să ignorați eroarea, așa că includeți gestionarul de erori numai pentru acel bloc de cod.

Articole interesante...