In VBA kunt u uw code programmeren om een sub af te sluiten wanneer er een fout wordt aangetroffen. Gebruik hiervoor Bij fout Ga naar en Sluit sub.
On Error Goto vertelt VBA dat wanneer er een fout wordt aangetroffen om naar een specifiek gedeelte van uw code te gaan. Ex:
1 | Bij fout Ga naar ErrorHandler |
Vanuit die sectie kun je VBA vertellen om Sub af te sluiten om de subprocedure af te sluiten:
12 | ErrorHandler:Sluit sub |
Lees verder om deze coderegels in actie te zien…
Sluit een sub af bij fout in VBA
In dit voorbeeld genereren we een fout door te delen door nul:
1 | ik = 5 / 0 |
Zie de volledige code hieronder. Wanneer VBA de fout leest, "gaat" het naar het ErrorHandler-gedeelte van de code en sluit het af:
123456789101112131415 | Subtestfout ()Dim ik als geheel getalBij fout Ga naar ErrorHandlerik = 5 / 0'Doe iets met i'MsgBox iSluit subErrorHandler:MsgBox "Als er een fout is, verlaat dan de Sub"Sluit subEinde sub |
Om foutafhandeling te specificeren, moet u eerst declareren Bij fout Ga naar uitspraak. Het moet aan het begin van een Sub worden gedeclareerd:
1 | Bij fout Ga naar ErrorHandler |
Daarna moet u de foutafhandelingscode declareren. Het staat meestal aan het einde van de code:
123 | ErrorHandler:MsgBox "Als er een fout is, verlaat dan de Sub"Sluit sub |
We voegen de "Exit Sub" toe boven de ErrorHandler omdat we de ErrorHandler-code alleen willen uitvoeren als er een fout is.
12345 | Sluit subErrorHandler:MsgBox "Als er een fout is, verlaat dan de Sub"Sluit subEinde sub |
Als u de Sub uitvoert, komt deze tot een fout vanwege deling door nul. Op dat moment wordt de foutafhandelingscode uitgevoerd. Het berichtvenster verschijnt en de Sub wordt afgesloten.
Afbeelding 1. VBA bij fout Sub afsluiten
Als u wilt leren hoe u code-uitvoering in VBA kunt beëindigen, klikt u op deze link: VBA End
Als je wilt leren hoe je een Sub of Functie afsluit, klik dan op deze link: VBA Exit Sub of Functie