VBA – Sub bei Fehler beenden
In VBA können Sie Ihren Code so programmieren, dass eine Sub immer dann beendet wird, wenn ein Fehler auftritt. Verwenden Sie dazu On Error GoTo und Exit Sub.
On Error Goto weist VBA an, beim Auftreten eines Fehlers zu einem bestimmten Abschnitt Ihres Codes zu springen. Beispiel:
On Error GoTo ErrorHandler
Von diesem Abschnitt aus können Sie VBA dann anweisen, Exit Sub zu verwenden, um die Unterprozedur zu beenden:
ErrorHandler:
Exit Sub
Lesen Sie weiter, um diese Codezeilen in Aktion zu sehen…
Beenden einer Unterprozedur bei einem Fehler in VBA
In diesem Beispiel erzeugen wir einen Fehler, indem wir durch Null dividieren:
i = 5 / 0
Siehe den vollständigen Code unten. Wenn VBA den Fehler liest, springt es in den ErrorHandler-Abschnitt des Codes und beendet ihn:
Sub TestFehler ()
Dim i As Integer
On Error GoTo ErrorHandler
i = 5 / 0
'Etwas mit i machen
MsgBox i
Exit Sub
ErrorHandler:
MsgBox "Wenn ein Fehler vorhanden ist, dann verlasse die Sub"
Exit Sub
End Sub
Um die Fehlerbehandlung festzulegen, müssen Sie zunächst die On Error GoTo-Anweisung deklarieren. Sie sollte am Anfang einer Sub deklariert werden:
On Error GoTo ErrorHandler
Danach müssen Sie den Code für die Fehlerbehandlung deklarieren. Er befindet sich normalerweise am Ende des Codes:
ErrorHandler:
MsgBox "Wenn ein Fehler vorhanden ist, dann verlasse die Sub"
Exit Sub
Wir fügen den „Exit Sub“ oberhalb des ErrorHandlers ein, weil wir den ErrorHandler-Code nur ausführen wollen, wenn ein Fehler auftritt.
Exit Sub
ErrorHandler:
MsgBox "Wenn ein Fehler vorhanden ist, dann verlasse die Sub"
Exit Sub
End Sub
Wenn Sie die Sub ausführen, kommt es zu einem Fehler wegen der Division durch Null. In diesem Moment wird der Fehlerbehandlungscode ausgeführt. Das Meldungsfenster erscheint und die Sub wird beendet.
Wenn Sie erfahren möchten, wie Sie die Codeausführung in VBA beenden können, klicken Sie auf diesen Link: VBA beenden.
Wenn Sie lernen möchten, wie Sie eine Sub oder eine Funktion beenden, klicken Sie auf diesen Link: VBA Sub oder Funktion beenden
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!Learn More!