Tratarea erorilor VBA - Ghid pentru gestionarea erorilor în Excel VBA

Excel VBA Error Handling

În VBA, atunci când lucrăm cu coduri, putem întâlni multe tipuri diferite de erori și modul de depanare a acestor erori este cunoscut sub numele de Tratarea erorilor, acum pot exista unele erori care sunt făcute în sintaxă, care excelează în sine, o evidențiază, dar atunci când există unele erori care este în afara intervalului sau ceva care nu există Excel ne oferă o pop-up pentru același lucru, este important să știm ce cod de eroare este pentru ce eroare pentru a identifica eroarea în cod.

În Excel VBA, în timp ce executăm orice set de coduri, primim un fel de erori. Unele dintre aceste erori sunt erori de sintaxă; unele sunt erori care nu pot fi executate. Eroarea de sintaxă se produce atunci când utilizatorul este evidențiată în culoare roșie chiar de Excel. Dar când există orice alt tip de eroare în timpul rulării, cum o vom rezolva și cum depășim acest lucru este ceea ce vom acoperi în acest articol.

În afară de erorile de sintaxă, celelalte erori de timp de execuție trebuie tratate în timpul executării oricărui set de coduri. În primul rând, permiteți-mi să dau un exemplu despre modul în care apare cealaltă eroare de rulare. Aruncați o privire la codul de mai jos,

Acesta este un exemplu de cod, când este executat, va returna ceea ce este scris în funcția msgbox. Dar, după cum putem vedea că în a doua linie a codului, există 4/0, ceea ce nu este posibil în termeni matematici, deci va returna o eroare în timpul rulării. Să executăm codul de mai sus și să vedem eroarea pe care o vom primi.

Aceasta este eroarea pe care o primim în timpul executării codului dat. Acum, cum putem gestiona această eroare este făcută de gestionarea erorilor.

Există două metode de gestionare a erorilor care sunt:

  1. Pe Error Goto și
  2. La eroare Reluați în continuare.

Explicaţie

După cum s-a explicat mai sus, primim multe tipuri de erori în VBA. Unele sunt sintaxe, iar altele sunt în timp. Erorile de sintaxă sunt deja evidențiate în culoare roșie, de exemplu, consultați mai jos captura de ecran,

În timp ce cealaltă este erori de timp de rulare. Practic, excel va face următoarele trei lucruri, fie va afișa o eroare sau va ignora acea eroare, fie va afișa un anumit set de instrucțiuni. Pentru a efectua astfel de sarcini, trebuie să oferim instrucțiuni, iar aceasta se numește Gestionarea erorilor.

Cum să gestionați erorile în codul VBA?

Exemplul nr. 1

Pentru primul exemplu, să luăm primul cod pe care l-am luat ca demonstrație. În exemplul de mai sus, am văzut că codul dă eroare în timpul de rulare la a doua funcție msgbox.

Scrieți următorul cod după deschiderea subfuncției,

Cod:

Sub eșantion () La eroare Reîncepeți următorul MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Finalizați sub

Acum, când executăm codul de mai sus, vedem că linia de cod care are eroarea nu este executată. Excel omite acea linie și se reia pe următoarea linie.

Există o altă metodă de gestionare a erorii este VBA Goto Statement. Oferim excel ca destinație la care să mergeți atunci când constată o eroare. În loc de codul anterior de tratare a erorilor, am inserat, notăm următorul cod,

Cod:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub

Oferim Excel Az ca destinație în care se poate accesa dacă găsește o eroare. Acum, după msgbox, scrieți un alt cod ca mai jos,

Cod:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Efectuat: Ieșiți din Sub

Acum trebuie să definim destinația az ca ceea ce ar trebui să facă atunci când Excel găsește o eroare în cod.

Cod:

Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Gata: Ieșiți Sub az: MsgBox "This is an error" & Err.Description End Sub

Acum, când rulăm acest cod, vedem rezultatul afișat.

Acesta este primul rezultat al casetei msg și, deoarece știm că avem o eroare în următoarea linie a codului nostru, să vedem rezultatul ce va da Excel.

Descrierea err.de mai sus din cod ne ajută să arătăm exact ce a apărut eroarea în codul nostru.

Exemplul nr. 2

Am învățat cum să gestionăm erorile din codurile noastre. Să ne uităm la un alt exemplu de gestionare a erorilor. Luați în considerare următorul cod ca al doilea exemplu.

Avem o eroare oarecum similară din exemplul 1. Eroarea este în linia d = i / b. Acum vom trata aceste erori folosind cele două metode explicate mai sus.

Scrieți următorul cod după deschiderea subfuncției,

Cod:

Sub Sample2 () On Error Reîncepe Următorul bx Dim i Ca întreg, b Ca întreg, c Ca întreg, d Ca întreg I = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub

Now when we execute our code, we can see that it ignores the second line and just displays the value for C.

The above error handler was a resume next, and now we will use the Go to wherein we will tell we excel a destination to go when it encounters an error. Write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d

The bx is a destination given when it encounters an error after msgbox D write down the following code,

Code:

Sub Sample2() On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Exit Sub bx: MsgBox „Aceasta este o altă eroare” & Err.Description End Sub

Acum, când executăm codul, putem vedea că excel ne oferă mai întâi valoarea pentru C.

Acum, într-un alt pas, ne va oferi promptul pe care l-am furnizat atunci când întâmpină o eroare.

Acesta este modul în care gestionăm erorile normale de rulare în Excel VBA.

Lucruri de amintit

Există câteva lucruri pe care trebuie să le amintim despre gestionarea erorilor:

  1. La Eroare Reluare Următor, ignoră eroarea.
  2. On Error GoTo Oferă Excel o destinație atunci când întâmpină o eroare.
  3. Descrierea este utilizată pentru a arăta eroarea exactă care a apărut utilizatorului.

Articole interesante...