In VBA können Sie Ihren Code so programmieren, dass er ein Sub verlässt, wenn ein Fehler auftritt. Verwenden Sie dazu Bei Fehler GoTo und Abo beenden.
On Error Goto teilt VBA mit, dass bei Auftreten eines Fehlers zu einem bestimmten Abschnitt Ihres Codes „Go To“ aufgerufen wird. Ex:
1 | Bei Fehler GoTo ErrorHandler |
In diesem Abschnitt können Sie VBA dann anweisen, Sub zu beenden, um die Sub-Prozedur zu beenden:
12 | Fehlerhandler:Abo beenden |
Lesen Sie weiter, um diese Codezeilen in Aktion zu sehen…
Beenden Sie ein Sub bei einem Fehler in VBA
In diesem Beispiel erzeugen wir einen Fehler, indem wir durch Null dividieren:
1 | i = 5 / 0 |
Siehe den vollständigen Code unten. Wenn VBA den Fehler liest, wird der Codeabschnitt ErrorHandler "gesprungen" und beendet:
123456789101112131415 | Untertestfehler ()Dim i As IntegerBei Fehler GoTo ErrorHandleri = 5 / 0'Mach etwas mit mirMsgBox iAbo beendenFehlerhandler:MsgBox "Wenn Fehler, dann beende das Sub"Abo beendenEnd Sub |
Um die Fehlerbehandlung anzugeben, müssen Sie zuerst deklarieren Bei Fehler GoTo Stellungnahme. Es sollte am Anfang eines Subs deklariert werden:
1 | Bei Fehler GoTo ErrorHandler |
Danach müssen Sie den Fehlerbehandlungscode deklarieren. Es steht normalerweise am Ende des Codes:
123 | Fehlerhandler:MsgBox "Wenn Fehler, dann beende das Sub"Abo beenden |
Wir fügen das „Exit Sub“ über dem ErrorHandler hinzu, da wir den ErrorHandler-Code nur ausführen möchten, wenn ein Fehler auftritt.
12345 | Abo beendenFehlerhandler:MsgBox "Wenn Fehler, dann beende das Sub"Abo beendenEnd Sub |
Wenn Sie den Sub ausführen, kommt es aufgrund der Division durch Null zu einem Fehler. In diesem Moment wird der Fehlerbehandlungscode ausgeführt. Die Meldungsbox erscheint und der Sub wird beendet.
Bild 1. VBA bei Fehler Exit Sub
Wenn Sie erfahren möchten, wie Sie die Codeausführung in VBA beenden, klicken Sie auf diesen Link: VBA End
Wenn Sie erfahren möchten, wie Sie ein Sub oder eine Funktion beenden, klicken Sie auf diesen Link: VBA Exit Sub or Function