Die 10 häufigsten VBA-Fehler und wie Sie sie vermeiden

Lesezeit: 7 Min. | VBA-Programmierung

Diese 10 VBA-Fehler kosten Entwickler die meiste Zeit. Lernen Sie, wie Sie sie erkennen und vermeiden.

1. Runtime Error 1004

Fehlermeldung: "Anwendungs- oder objektdefinierter Fehler"

Häufigste Ursachen:

Lösung:

' Prüfen ob Blatt existiert
On Error Resume Next
Set ws = Worksheets("Daten")
On Error GoTo 0

If ws Is Nothing Then
  MsgBox "Arbeitsblatt nicht gefunden!"
End If

2. Object Required Error (91)

Ursache: Objektvariable nicht mit Set initialisiert

Falsch:

Dim wb As Workbook
wb = Workbooks.Open("Test.xlsx") ' FEHLER!

Richtig:

Dim wb As Workbook
Set wb = Workbooks.Open("Test.xlsx") ' ✓

3. Subscript out of range (9)

Ursache: Array-Index oder Collection-Key ungültig

Lösung:

' Prüfen ob in Grenzen
If i >= LBound(myArray) And i <= UBound(myArray) Then
  value = myArray(i)
End If

4. Type Mismatch (13)

Ursache: Falscher Datentyp

Beispiel:

Dim x As Integer
x = "Hallo" ' FEHLER!

Lösung: Validierung

If IsNumeric(value) Then
  x = CInt(value)
Else
  MsgBox "Keine Zahl!"
End If

5. Division by Zero (11)

Lösung:

If Nenner <> 0 Then
  Result = Zähler / Nenner
Else
  Result = 0 ' oder Error
End If

6. Infinite Loops

Problem:

Do While i < 10
  ' i wird nie erhöht → Endlosschleife!
Loop

Lösung:

Do While i < 10
  ' Code
  i = i + 1 ' WICHTIG!
Loop

7. Memory Leaks

Problem: Objekte nicht freigegeben

Lösung:

Set wb = Nothing
Set ws = Nothing
' Immer am Ende!

8. Hardcoded Pfade

Schlecht:

Open "C:\Users\Max\Daten.txt" For Input As #1

Besser:

Dim pfad As String
pfad = ThisWorkbook.Path & "\Daten.txt"
Open pfad For Input As #1

9. Fehlendes Error Handling

Immer Error-Handling einbauen:

Sub RobusterCode()
  On Error GoTo ErrorHandler
  
  ' Ihr Code
  
  Exit Sub
ErrorHandler:
  MsgBox "Fehler: " & Err.Description
End Sub

10. Fehlende Option Explicit

Problem: Tippfehler in Variablennamen werden nicht erkannt

Lösung:

Option Explicit ' IMMER am Modulanfang!

Sub MeinCode()
  Dim count As Long
  cout = 5 ' Fehler wird erkannt!
End Sub

Checkliste: Code-Qualität

Fazit

Diese 10 Fehler vermeiden spart Stunden Debugging:


Das könnte Sie auch interessieren:

VBA-Projekt anfragen