Tipps & Tricks 17.04.2005, 12:30 Uhr

«On Error»-Anweisung in Excel-Makros

In meinen Makros verwende ich oft die Anweisung «On Error GoTo Sprungmarke» um auftretende Fehler mit einer geeigneten Fehlermeldung (MsgBox) abzufangen. Leider kann ich diese Anweisung nur einmal in einem Makro anwenden. Wie kann ich die Anweisung im Verlauf des Makros wieder aufheben und ggf. durch eine Neue ersetzen? Dasselbe trifft auf die Anweisung «On Error Resume Next» zu. Wie kann dieser Befehl wieder aufgehoben werden, damit nicht alle nachfolgenden Fehler im Verlauf der Prozedur einfach übergangen werden.
Die Anweisung "On Error xyz " aktiviert eine Fehlerbehandlungsroutine und gibt deren Position innerhalb der Prozedur an.
Wenn ich ihr Anliegen also richtig verstanden habe, senden Sie senden Sie mit der Anweisung "On Error GoTo Sprungmarke" die Makroausführung bei einem auftretenden Fehler zur Fehlerbehandlungsroutine "Sprungmarke:". Es kommt also ganz darauf an, was in dieser Fehlerbehandlungsroutine steht. Wenn da natürlich drin steht "Exit Sub" wird die Ausführung des Makros abgebrochen und somit beendet.
Bei der Anweisung "On Error Resume Next" ist das Verhalten ähnlich. Die Ausführung des Makros wird nach einer "On Error Resume Next"-Anweisung mit der Anweisung fortgeführt, welche unmittelbar auf die Laufzeitfehler verursachende Anweisung folgt. Ist da keine Anweisung mehr vorhanden, wird das Makro ebenfalls beendet. Möglich ist auch, dass die Anweisung mit der Anweisung fortfährt, die unmittelbar auf den letzten Aufruf einer anderen Prozedur folgt, in der ebenfalls die "On Error Resume Next"-Anweisung enthalten ist.
Es ist empfehlenswert, zu diesem Thema auch mal die integrierte VBA-Hilfe zu konsultieren. Suchen Sie da nach "On Error" um möglichst viele Informationen zu erhalten.


Kommentare

Es sind keine Kommentare vorhanden.