Rückkehr in VBA-Code-Beispiele

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.

bei fehler sub beenden

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! vba save as


Learn More!