VBA pe eroare reluă Următorul - Exemple de VBA pe eroare reluă Următorul

Cuprins:

Anonim

Excel VBA pe eroare reluă Următorul

Gestionarea erorilor este un mecanism foarte util și semnificativ pentru limbajele de programare precum VBA Controlul sau prevenirea erorilor, care este un aspect al gestionării erorilor, ceea ce înseamnă să luați măsuri eficiente și semnificative în cadrul unui script VBA pentru a evita apariția mesajului pop-error. Instrucțiunea Excel VBA On Error Resume Next ignoră linia de cod care provoacă o eroare și continuă sau direcționează execuția către următoarea linie urmând linia care a provocat eroarea.

NOTĂ: În instrucțiunea Error Resume Next nu se rezolvă erorile de execuție, este o eroare care se ignoră în cazul în care execuția programului VB va continua de la linia care a provocat eroarea de rulare.

Practic, On erori reluare următor este utilizat atunci când doriți să ignorați eroarea și să continuați sau să reluați executarea codului la celula următoare.

Tipuri de erori în VBA

Mai jos sunt diferite tipuri de erori în VBA:

  1. Eroare de sintaxă sau eroare de analiză.
  2. Eroare de compilare sau compilare.
  3. Eroare de rulare.
  4. Eroare logică.

Erorile de mai sus pot fi corectate cu ajutorul declarațiilor de depanare și „On Error” dintr-un cod. Eroarea de rulare poate fi prevenită cu ajutorul On Reînceperea erorii.

VBA Runtime Error:

Înainte de a explica explicația On Error Resume Next, ar trebui să fiți conștienți de eroarea de rulare atunci când sunt imposibile declarații sau termeni matematici prezenți într-o instrucțiune, atunci apare această eroare de rulare.

Exemple de Excel VBA pe eroare reluă Următorul

Mai jos sunt diferite exemple de On Reînceperea erorilor Următoare în Excel VBA:

Puteți descărca acest model VBA On Error Resume Next Excel Model aici - VBA On Error Resume Next Next Model

VBA On Error Resume Next - Exemplul # 1

Aici, o eroare va fi ignorată, iar execuția codului va continua. În exemplul menționat mai jos, 6 nu poate fi împărțit la zero, dacă îl executați fără a introduce instrucțiunea On Error Resume Next, atunci apare mai jos eroare de rulare menționată.

Cod:

 Sub RUNTIME_1 () MsgBox 6/0 End Sub 

Dacă On Error Resume Next a intrat în partea de sus a codului după instrucțiunea SUB, ignoră eroarea de execuție și trece la instrucțiunea următoare, are ca rezultat o ieșire de 6/2 (caseta de mesaj popup cu rezultatul acesteia).

Cod:

 Sub RUNTIME_2 () On Reînceperea erorii Următorul MsgBox 6/0 MsgBox 6/2 End Sub 

VBA On Error Resume Next - Exemplul # 2

Pot folosi On Error Resume Next oriunde în cod, de la început până la sfârșit. În exemplul menționat mai jos, trebuie să fac un calcul 3 adică

9/3 =?

9/0 =?

9/2 =?

În exemplul menționat mai sus, puteți observa un al doilea calcul în care niciun număr nu poate fi împărțit la zero, adică 9 nu pot fi împărțiți cu zero în a doua etapă. Să presupunem că dacă rulați macro fără să introduceți instrucțiunea On Error Resume Next, acum pot executa codul pas cu pas cu ajutorul pasului în sau cu tasta F8 pentru a înțelege cum funcționează.

Acum, execut codul de mai sus, făcând clic pe pasul Into opțiune sau tasta F8 frecvent, pas cu pas. Doar copiez codul de mai sus și încep să-l rulez pas cu pas, pentru că apare primul pas al mesajului de calcul din caseta 3.

Cod:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Când rulez a doua linie de cod, atunci eroarea de execuție menționată mai jos apare la a doua etapă a unui cod, unde niciun număr nu poate fi împărțit la zero, adică 9 nu pot fi împărțiți cu zero în al doilea pas.

Cod:

 Sub RUNTIME_3 () MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Acum, dacă fac chiar clic pe debug, nu poate continua mai departe, unde mă va duce la a doua linie de cod (se evidențiază în culoare galbenă), unde trebuie să fac corecția. Deci, aici, dacă faceți clic pe opțiunea Pasul Into sau pe tasta F8, al treilea calcul din acest cod nu va fi executat.

Pentru a rectifica sau gestiona această eroare de execuție, trebuie să utilizez sau să execute instrucțiunea OnError Resume Next deasupra unui al doilea cod sau la începutul codului sub substatement. astfel încât va sări această linie de cod și va trece la a treia etapă de cod și va calcula valoarea.

Cod:

 Sub RUNTIME_30 () MsgBox 9/3 On Error Reîncepe Următorul MsgBox 9/0 MsgBox 9/2 End Sub 

SAU

 Sub RUNTIME_31 () On Reînceperea erorii Următorul MsgBox 9/3 MsgBox 9/0 MsgBox 9/2 End Sub 

Acum, am adăugat la reluarea erorilor următoarea declarație la cod, unde puteți utiliza oricare dintre codurile de mai sus, dacă îl executați pas cu pas, veți primi un pop-up cu două mesaje, unul este primul cod de ieșire și al treilea cod calcul. On Error Resume Next va ignora eroarea de rulare din al doilea cod și va trece la al treilea cod.

VBA On Error Resume Next - Exemplul # 2

Vom vedea acum Combinarea Rezumării On Error Următoare cu Eroarea GoTo 0. În codul de mai jos, va ignora erorile până când va ajunge la instrucțiunea On Error GoTo 0 . După instrucțiunea On Error GoTo 0, codul revine sau trece la verificarea normală a erorilor și declanșează eroarea preconizată.

Cod:

 Sub onError_Go_to_0_with_Resume_next () On Error Reîncepe Uciderea următoare "C: TempFile.exe" Pe eroarea GoTo 0 Range ("A1"). Value = 100 / "PETER" End Sub 

Când rulez codul de mai sus, acesta va afișa eroarea de divizare, adică nepotrivirea tipului (valoarea numerică nu poate fi împărțită după text).

Acum, puteți salva cartea de lucru ca un „manual de lucru activat cu Excel”. Făcând clic pe salvare ca în colțul din stânga al foii de lucru.

când deschideți din nou acest fișier excel, puteți utiliza tasta rapidă menționată mai jos

Tasta scurtă funcție + Alt + F11 vă ajută să accesați tot codul macro creat din cartea de lucru. Tasta scurtă funcție + Alt + F8 vă ajută să deschideți o fereastră de dialog „Macro”, care conține toate numele macro, unde puteți rula un cod macro specific la alegere.

Lucruri de amintit

  • Eroarea timpului de rulare va fi prinsă în tăcere și stocată în obiectul Err global
  • On Error Resume Next Împiedică de obicei o întrerupere a executării codului.
  • Proprietățile obiectului de eroare (Obiect Err) se șterg automat atunci când Resume Next este utilizat într-o rutină de gestionare a erorilor

Articole recomandate

Acesta este un ghid pentru VBA On Error Resume Next. Aici vom discuta despre diferite tipuri de eroare în VBA Excel împreună cu câteva exemple practice și șablonul excel descărcabil. De asemenea, puteți parcurge și alte articole sugerate -

  1. Ghid complet pentru macro-urile VBA
  2. VBA DateDiff (exemple cu șablon Excel)
  3. Cum se folosește căutarea obiectivelor în VBA?
  4. Foaie de protecție VBA cu sintaxă
  5. VBA Environ