Excel VBA AI Assistant LogoExcel VBA AI Assistant
    Debugging
    VBA
    Fehlersuche
    Error Handling
    Empfohlen

    Die häufigsten Laufzeitfehler in VBA – Ursachen & Lösungen

    Fehler 9, 13, 91, 1004 & Co.: Ursachen verstehen, zielgerichtet beheben. Mit Muster-Code und Praxisfall.

    VBA AI Team
    Veröffentlicht am 17. August 2025
    12 Min. Lesezeit

    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.

    Mit dem VBA Assistant schneller ans Ziel

    Lassen Sie sich Best Practices vorschlagen, Code erklären und automatisch verbessern.