ich habe ein Outlook-Makro geschrieben, das die folgenden Zeilen enthält:
On Error GoTo NoItemFound 'Occurs on reading ".Body" when FFA\_AppItem is empty
FFA\_BodyText = FFA\_AppItem.Body
On Error GoTo 0
Hintergrund: In einer Schleife wird ein Datumsbereich durchgegangen, und zu jedem Datum wird in einem Kalender der passende Kalender-Eintrag gesucht und - wenn einer gefunden wird - in „FFA_AppItem“ abgelegt, das vom Typ Appointment ist.
Problem: Wenn ein Eintrag gefunden wird, geht es einfach weiter. Kein Problem. Wenn nun aber kein Eintrag gefunden wird und ich darauf zugreifen möchte, schlägt das natürlich fehl. Das funktioniert beim ersten Fehlschlag auch wunderbar, aber wenn nun bei der nachfolgenden Suche gleich wieder nichts gefunden wird, dann knallt’s, obwohl er über die „On Error Goto …“-Zeile kommt. Warum??? Wo liegt der Hase im Pfeffer?
wahrscheinlich springst du mit goto aus der fehlerbehandlung heraus. man muss aber die resume-anweisung benutzen:
sub irgendwas ()
on error goto fehler
for i=1 to 5
machefehler
nach\_fehler:
next
exit sub
fehler:
resume 'wiederholt die fehlerhafte Anweisung oder
resume next 'springt zur nächsten Anweisung oder
resume nach\_fehler 'springt zum label "nach\_fehler"
end sub
wahrscheinlich springst du mit goto aus der fehlerbehandlung heraus. man muss aber die resume-anweisung benutzen
Aha, ich kannte nur Resume Next und dachte, die Fehlerbehandlung würde sich von selbst zurücksetzen. Bisher hatte ich auch keine Probleme.
Das On Error Goto 0 zum Wiedereinschalten der Überwachung durch das System ist aber korrekt, oder?
Ich werd´s gleich mal ausprobieren mit dem Resume Marke … ja, es funktionopolitiert! Stimmt, ich hatte die Abarbeitung nach der Fehlersprungmarke einfach weiterlaufen lassen bzw. war, wie Du richtig vermutet hast, per GoTo rausgegangen, um eine zweite Marke zu überspringen, was auf´s Gleiche rauskommt.