În VBA, puteți programa codul dvs. pentru a ieși dintr-un sub ori de câte ori apare o eroare. Pentru a face acest lucru, utilizați La eroare GoTo și Ieșiți din Sub.
On Error Goto îi spune VBA că, atunci când se întâlnește o eroare, „Mergi la” o anumită secțiune din codul tău. Ex:
1 | On Error GoTo ErrorHandler |
Din secțiunea respectivă, puteți spune VBA să părăsească Sub pentru a părăsi procedura secundară:
12 | ErrorHandler:Ieșiți din Sub |
Citiți mai departe, pentru a vedea aceste linii de cod în acțiune …
Ieșiți dintr-o eroare secundară în VBA
În acest exemplu, vom genera o eroare împărțind la zero:
1 | i = 5/0 |
Consultați codul complet de mai jos. Când VBA citește eroarea, va „trece” la secțiunea de cod ErrorHandler și va ieși:
123456789101112131415 | Sub TestError ()Dim i IntegerOn Error GoTo ErrorHandleri = 5/0'Fă ceva cu iMsgBox iIeșiți din SubErrorHandler:MsgBox "Dacă eroare, apoi ieșiți din Sub"Ieșiți din SubSfârșitul Sub |
Pentru a specifica gestionarea erorilor, trebuie mai întâi să declarați La eroare GoTo afirmație. Ar trebui să fie declarat la începutul unui Sub:
1 | On Error GoTo ErrorHandler |
După aceea, trebuie să declarați codul de tratare a erorilor. De obicei se află la sfârșitul codului:
123 | ErrorHandler:MsgBox "Dacă eroare, apoi ieșiți din Sub"Ieșiți din Sub |
Adăugăm „Exit Sub” deasupra ErrorHandler deoarece vrem să rulăm codul ErrorHandler numai dacă există o eroare.
12345 | Ieșiți din SubErrorHandler:MsgBox "Dacă eroare, apoi ieșiți din Sub"Ieșiți din SubSfârșitul Sub |
Dacă rulați Sub, va apărea o eroare din cauza împărțirii la zero. În acel moment, codul de gestionare a erorilor va fi executat. Apare caseta de mesaje și Sub este ieșită.
Imagine 1. VBA On Error Exit Sub
Dacă doriți să aflați cum să încheiați executarea codului în VBA, faceți clic pe acest link: VBA End
Dacă doriți să aflați cum să ieșiți dintr-un Sub sau Funcție, faceți clic pe acest link: VBA Exit Sub sau Function