VBA: Bei Fehler trotzdem weitermachen
Schritt-für-Schritt-Anleitung
Wenn Du in Excel VBA einen Fehler abfangen und trotzdem weitermachen möchtest, kannst Du dies mit der On Error-Anweisung tun. Hier ist eine einfache Schritt-für-Schritt-Anleitung:
-
Öffne den VBA-Editor in Excel (Alt + F11).
-
Füge den folgenden Code in dein Modul ein:
Sub Beispiel()
On Error Resume Next
' Dein Code hier, z.B.:
With Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode")
.PivotItems("(blank)").Visible = True
.PivotItems("b63").Visible = False
.PivotItems("b64").Visible = False
.PivotItems("b65").Visible = False
End With
On Error GoTo 0 ' Fehlerbehandlung zurücksetzen
End Sub
-
Der Code setzt die Fehlerbehandlung aktiv, sodass Excel Fehler ignoriert und der Code trotzdem weiter ausgeführt wird.
Häufige Fehler und Lösungen
Hier sind einige häufige Fehler, die bei der Verwendung von On Error Resume Next auftreten können, sowie deren Lösungen:
-
Problem: Der Code läuft, aber Du bekommst unerwartete Ergebnisse.
- Lösung: Stelle sicher, dass Du
On Error GoTo 0 am Ende der Prozedur verwendest, um die Fehlerbehandlung zurückzusetzen.
-
Problem: Es treten Fehler auf, die Du nicht ignorieren möchtest.
- Lösung: Verwende spezifische Fehlerbehandlungsroutinen, anstatt alle Fehler zu ignorieren. Zum Beispiel:
On Error GoTo Fehlerbehandlung
' Dein Code hier
Exit Sub
Fehlerbehandlung:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
Alternative Methoden
Zusätzlich zur Verwendung von On Error Resume Next gibt es andere Methoden, um mit Fehlern in VBA umzugehen:
-
Fehlervorbeugung: Stelle sicher, dass die Elemente, die Du ansprechen möchtest, tatsächlich existieren. Verwende eine If-Bedingung:
If Not IsError(Application.Match("b65", Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode").PivotItems, 0)) Then
.PivotItems("b65").Visible = False
End If
-
Fehlerprotokollierung: Du kannst Fehler auch in einer Protokolldatei speichern, um sie später zu analysieren.
Praktische Beispiele
Hier sind einige praktische Beispiele, die zeigen, wie Du mit Fehlern in VBA umgehen kannst:
-
Beispiel mit Pivot-Tabellen:
Sub PivotFehlerBehandlung()
On Error Resume Next
With Worksheets("Market Share Template").PivotTables("PivotTable2").PivotFields("Reportingperiode")
.PivotItems("(blank)").Visible = True
' Weitere PivotItems hier
End With
On Error GoTo 0
End Sub
-
Beispiel mit Datenbankabfragen:
Sub DatenbankAbfrage()
On Error Resume Next
' DB-Abfrage hier
On Error GoTo 0
End Sub
Tipps für Profis
- Verwende immer eine spezifische Fehlerbehandlung, anstatt Fehler pauschal zu ignorieren.
- Halte deinen Code so einfach wie möglich, um Fehlerquellen zu minimieren.
- Teste deinen Code gründlich, um sicherzustellen, dass keine unerwarteten Fehler auftreten.
FAQ: Häufige Fragen
1. Frage: Was passiert, wenn ich On Error Resume Next benutze?
Antwort: Der Code wird weiterhin ausgeführt, auch wenn ein Fehler auftritt. Dies kann jedoch dazu führen, dass Du wichtige Fehler übersiehst.
2. Frage: Wie kann ich sicherstellen, dass ein Fehler nicht ignoriert wird?
Antwort: Verwende On Error GoTo mit einer spezifischen Fehlerbehandlungsroutine, um den Fehler gezielt zu behandeln.