Oft ist es nötig bei Fehlern einfach weiterzumachen, weil sie für den Programmablauf unerheblich sind. So z.B. beim Löschen von Objekten in Access. Wenn dort das Objekt nicht existiert und man es löschen will, Schwupps eine Fehlermeldung.
Klar ganz einfach On Error Resume Next vor den ärgerlichen Befehl und schon macht das Programm einfach weiter, und ignoriert sozusagen den Fehler.
Leider ignoriert VBA aber auch alle anderen Fehler die danach kommen, auch wenn diese meistens gewünscht sind. Deshalb immer darauf achten die normale Fehlerbehandlung auch immer wieder ein zu schalten. Das macht man mit dem Befehl On Error GoTo ErrorHandler.
Bei großen Projekten ist es Ratsam eine eigene Fehlerbehandlung zu schreiben mit sinnvollen Fehlermeldungen. Dazu einfach am Anfang On Error GoTo Eigene_Fehlerbehandlung VBA mitteilen, das er bei einem Fehler zur Funktion Eigene_Fehlerbehandlung springen soll.
Dort kann man dann das Objekt Err auswerten in ihm werden alle Fehlerinformationen gespeichert. Die wichtigsten Eigenschaften des Err Objektes sind dabei:
- Err.Number
- Err.Description
Mit der Select Case Anweisung und Err.Number kann man dann sehr schön und effektiv seine eigene Fehlerroutine basteln.
PS: Mit dem Befehl On Error GoTo 0 kann man übrigens die VBA-eigene Fehlerbehandlung ganz abschalten.