Viele VBA-Fehler sind „Klassiker“ – und lassen sich mit einem Blick auf die Ursache beheben. Dieser Artikel sammelt die häufigsten Laufzeitfehler, erklärt Warum sie auftreten und zeigt konkrete Fixes – inklusive Praxisfall.
1) Fehler 9 – „Index außerhalb des gültigen Bereichs“
Ursache: Blatt/Arbeitsmappe/Array-Index nicht vorhanden.
Lösung: Existenz prüfen, sichere Getter-Funktion verwenden.
Function GetSheet(ByVal name As String) As Worksheet On Error Resume Next Set GetSheet = ThisWorkbook.Worksheets(name) On Error GoTo 0 End Function
2) Fehler 13 – „Typen unverträglich“
Ursache: Unpassende Datentypen (z. B. String ↔ Double).
Lösung: Typen deklarieren, Konvertierung (CLng, CDbl, CStr) nutzen.
Dim betrag As Double betrag = CDbl(Range("B2").Value)
3) Fehler 91 – „Objektvariable oder With-Blockvariable nicht festgelegt“
Ursache: Set vergessen oder Objekt nicht gefunden.
Lösung: Objektzuweisung prüfen, Is Nothing-Checks.
Dim ws As Worksheet Set ws = GetSheet("Daten") If ws Is Nothing Then Exit Sub
4) Fehler 1004 – „Anwendungs- oder objektdefinierter Fehler“
Ursache: Sehr allgemein: ungültiger Bereich, geschütztes Blatt, Filterzustände, etc.
Lösung: Bereich validieren, Schutz/Filter prüfen, Schrittweise debuggen.
If Not Intersect(Range("A:A"), Selection) Is Nothing Then ' ... End If
5) Fehlerbehandlung standardisieren
Sub Muster() On Error GoTo Fehler ' ... Code ... Beenden: ' Cleanup Exit Sub Fehler: MsgBox "Fehler " & Err.Number & ": " & Err.Description Resume Beenden End Sub
Praxisfall – Importfehler durch leere Datei
Symptom: Fehler 9 beim Zugriff auf Range("A1") einer neu erzeugten Datei.
Ursache: Falsches Objekt (falsches Workbook aktiv), Set vergessen.
Fix
Sub ImportiereSicher(ByVal pfad As String) On Error GoTo Fehler Dim wb As Workbook Set wb = Workbooks.Open(pfad) wb.Sheets(1).Range("A1").Value = "OK" Beenden: If Not wb Is Nothing Then wb.Close SaveChanges:=False Exit Sub Fehler: MsgBox "Import fehlgeschlagen: " & Err.Description Resume Beenden End Sub
Fazit
Wer typische Fehlerbilder kennt und saubere Muster nutzt (Typen, Is Nothing, standardisiertes Error Handling), löst 80 % aller Laufzeitprobleme in Minuten.
Code-Generierung
Automatische VBA-Code-Erstellung durch natürliche Sprache
Code-Analyse
Code verstehen und dokumentieren
Debugging
Intelligente Fehlerfindung und -behebung
Code-Verbesserung
Optimierung und Fehlerbehandlung
UI-Design
UserForms über natürliche Sprache erzeugen
Snippet-Verwaltung
Über 100 vorgefertigte Code-Bausteine
Mit dem VBA Assistant schneller ans Ziel
Lassen Sie sich Best Practices vorschlagen, Code erklären und automatisch verbessern.
