Die Fehlerbehandlung ist ein wichtiger Aspekt der Excel-VBA-Programmierung, insbesondere wenn Benutzer ungültige Werte in ein Arbeitsblatt eingeben. Hier finden Sie eine Anleitung zum Umgang mit häufig auftretenden Fehlern in Excel VBA.
Die Fehlerbehandlung verhindert nicht nur, dass das Programm aufgrund falscher Eingaben abstürzt, sondern auch:
- Geben Sie den Benutzern klares Feedback zu auftretenden Fehlern
- Vereinfachen Sie die Codewartung und Fehlerbehebung
Durch einen guten Umgang mit Fehlern können Programmierer sicherstellen, dass das Programm reibungslos läuft und die Benutzer eine bessere Erfahrung haben.

In der Welt der Excel-VBA-Programmierung können Fehler immer dann auftreten, wenn ein Benutzer einen ungültigen Wert in ein Arbeitsblatt eingibt. Wenn diese Fehler nicht richtig behandelt werden, können sie dazu führen, dass das Programm gestoppt wird oder unerwünschte Ergebnisse liefert.
In diesem Artikel wird Bardimin verschiedene Methoden zur Identifizierung und Behebung häufiger Fehler in Excel VBA diskutieren und praktische Lösungen anbieten, um das Programm trotz Unterbrechungen reibungslos laufen zu lassen.
Arten von Fehlern und Schreiben von Fehlern beim Behandeln von Code
Die Fehlerbehandlung in Excel VBA ist unerlässlich, um sicherzustellen, dass das Programm ordnungsgemäß ausgeführt wird und eine positive Benutzererfahrung bietet. Hier sind einige gängige Arten der Fehlerbehandlung, die in Excel VBA verwendet werden:
1. On Error GoTo
Diese Art der Fehlerbehandlung wird verwendet, um ein Programm zu einem bestimmten Codeabschnitt zu leiten, wenn ein Fehler auftritt. Sobald der Programmablauf erkannt wurde, wird er zu einer bestimmten Bezeichnung verschoben, die für die Behandlung des Fehlers definiert wurde.
Private Sub CommandButton1_Click()
On Error GoTo err_handler
num1 = InputBox("Enter the first number")
num2 = InputBox("Enter the second number")
MsgBox num1 / num2
Exit Sub
err_handler:
MsgBox "Invalid division, please try again"
End Sub
Wenn in diesem Beispiel ein Fehler auftritt (z. B. Division durch Null), springt das Programm zur Beschriftung err_handler und zeigt eine Fehlermeldung an.
2. On Error Resume Next
Bei On Error Resume Next ignoriert das Programm den Fehler und setzt die Ausführung des Codes in der nächsten Zeile fort. Dies ist nützlich für nicht kritische Fehler, die keine besondere Behandlung erfordern.
Private Sub CommandButton2_Click()
On Error Resume Next
num1 = InputBox("Enter the first number")
num2 = InputBox("Enter the second number")
MsgBox num1 / num2
End Sub
Selbst wenn es eine Division durch Null gibt, wird das Programm nicht gestoppt und die Ausführung wird bis zur nächsten Zeile fortgesetzt.
Die Verwendung von Resume Next sollte mit Vorsicht erfolgen, da sich dadurch wichtige Fehler verbergen können.
3. On Error GoTo 0
Bei Fehler Gehe zu 0 wird verwendet, um die zuvor aktivierte Fehlerbehandlung zu deaktivieren. Wenn nach der Verwendung dieses Befehls in der nächsten Zeile ein Fehler auftritt, wird das Programm gestoppt und eine Standardfehlermeldung angezeigt.
Sub ExampleGoToZero()
On Error Resume Next ' Ignore errors
Dim result As Double
result = 5 / 0 ' Errors are ignored
On Error GoTo 0 ' Disable error handling
MsgBox result
result = 5 / 0 ' This will cause the program to terminate since errors are no longer ignored
End Sub
Wenn nach der Verwendung von On Error GoTo 0 ein Fehler auftritt, wird das Programm wie gewohnt gestoppt.
4. On Error GoTo -1
Dieser Typ wird verwendet, um den Fehlerbehandlungsstatus zurückzusetzen, der im Bereich der aktuellen Prozedur gilt. Fehler, die zuvor behandelt wurden, wirken sich nicht mehr auf den Programmablauf aus.
Sub ExampleGoToMinusOne()
On Error GoTo ErrorHandler
Dim result As Double
result = 5 / 0 ' This causes an error
Exit Sub
ErrorHandler:
MsgBox "Error handled."
On Error GoTo -1 ' Clears previous error status
' If the error occurs again, handling must be reset
End Sub
Mit On Error GoTo -1 wird die bisherige Fehlerbehandlung entfernt, sodass Sie bei Bedarf eine neue Behandlung einrichten können.