Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

On Error GoTo Errorhandler

Forumthread: On Error GoTo Errorhandler

On Error GoTo Errorhandler
23.07.2002 13:55:42
andré
also ich hab folgenden code:

wenn ich den Code ausführe kommt als erstes halt die Fehlermeldung Pfad nicht gefunden, danach bricht das Programm ab, besser gesagt bringt das debuggenzeugl ...

ist on error ... nur einmal verfügbar und danach ist es ungültig oder wie?

mfg andré

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: On Error GoTo Errorhandler
23.07.2002 14:03:25
Udo RiHü
Hallo,
mit Resume 1: anstatt Goto 1: klappt's

Gruss Udo

Re: On Error GoTo Errorhandler
23.07.2002 14:04:25
Nayus

Hallo,
die Sprungmarke "1:" kannst Du Dir sparen

On Error GoTo errorhandler
ChDir "testpfaddenesnichtgibt:\"
Exit Sub
errorhandler:
MsgBox Error
Resume Next



Re: On Error GoTo Errorhandler
23.07.2002 14:04:52
unbekannt
On Error GoTo errorhandler
ChDir "testpfaddenesnichtgibt:\"
On Error GoTo 0


Exit Sub
errorhandler:
MsgBox "Error"

End Sub

Anzeige
Re: On Error GoTo Errorhandler
23.07.2002 14:12:46
Charlie
Hallo, André!

So wie ich das sehe, wird der Befehl 1x ausgeführt, wenn eben ein Fehler auftritt. Soll die Fehlerprüfung im Anschluss an die Fehlermeldung wieder (weiter) aktiv sein, dann musst Du den Befehl On Error Goto errorhandler NACH der Sprungmarke positionieren, damit sie nach dem Sprung wieder aktiviert wird.

Aber: Was soll in Deinem Beispiel der Sprunt zur Marke 1 bewirken? Die Fehlerprozedur wird offensichtlich ausgelöst, wenn ChDir ... einen Fehler produziert. Dann wird der Hinweis angzeigt und Du springst wieder unmittelbar zu dem Befehl, der den 1. Fehler ausgelöst hat. Willst Du Dich in eine Endlosschleife reinmanövrieren?

Dass die "On Error Goto" - Anweisung nur 1x ausgeführt wird, ergibt sich logischerweise daraus, dass man beim Auftreten eines Fehlers üblicherweise eine geeignete (Gegen-)Maßnahme ergreift. Dass man danach den 1. Fehler gezielt wieder produziert, ist wohl nicht im Sinne des Erfinders.

Gruß,
Charlie

Anzeige
Danke o. T.
23.07.2002 14:13:35
andré

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehandlung in Excel VBA mit On Error GoTo


Schritt-für-Schritt-Anleitung

  1. Aktiviere die Entwicklertools in Excel, falls dies noch nicht geschehen ist. Gehe zu Datei > Optionen > Menüband anpassen und aktiviere das Kontrollkästchen für Entwicklertools.

  2. Öffne den VBA-Editor mit ALT + F11.

  3. Erstelle ein neues Modul:

    • Rechtsklick auf VBAProject (DeineDatei.xlsm) > Einfügen > Modul.
  4. Füge den folgenden Code ein:

    Sub BeispielFehlerbehandlung()
       On Error GoTo errorhandler
    
       ' Beispielcode, der einen Fehler erzeugt
       ChDir "testpfaddenesnichtgibt:\"
       Exit Sub
    
    errorhandler:
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
       Resume Next
    End Sub
  5. Testen des Codes: Führe das Makro aus und beobachte, wie die Fehlerbehandlung funktioniert. Die MsgBox zeigt eine Fehlermeldung an, falls ein Fehler auftritt.


Häufige Fehler und Lösungen

  • Fehler: „Pfad nicht gefunden“:

    • Stelle sicher, dass der angegebene Pfad korrekt ist. Ein Tippfehler kann dazu führen, dass der Fehler auftritt.
  • Problem mit On Error GoTo:

    • Wenn On Error GoTo nicht mehr funktioniert, könnte es daran liegen, dass der Fehlerhandler nicht korrekt gesetzt ist. Überprüfe die Reihenfolge deiner Fehlerbehandlungsanweisungen.
  • Endlosschleife durch Resume:

    • Achte darauf, dass nach dem Resume eine Bedingung vorhanden ist, die den Code nicht erneut zum Fehler führt.

Alternative Methoden

  • On Error Resume Next:

    • Diese Methode ignoriert Fehler und lässt das Programm weiterlaufen. Beispiel:
    On Error Resume Next
    ChDir "testpfaddenesnichtgibt:\"
    If Err.Number <> 0 Then
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If
  • On Error GoTo 0:

    • Setzt die Fehlerbehandlung zurück. Nach dieser Anweisung werden zukünftige Fehler nicht mehr behandelt.

Praktische Beispiele

  1. Einfacher Fehlerhandler:

    Sub EinfacheFehlerbehandlung()
       On Error GoTo errorhandler
       ' Code, der einen Fehler erzeugt
       ChDir "falscherPfad"
       Exit Sub
    
    errorhandler:
       MsgBox "Fehler aufgetreten!"
    End Sub
  2. Fehler mit Resume Next behandeln:

    Sub FehlerUndResume()
       On Error Resume Next
       ChDir "falscherPfad"
       ' Weiterer Code, der möglicherweise fehlerhaft ist
       MsgBox "Programm läuft weiter trotz Fehler."
    End Sub

Tipps für Profis

  • Nutze benannte Sprungmarken für bessere Lesbarkeit deines Codes. Anstatt „1:“, benutze aussagekräftige Namen wie errorhandler:.

  • Dokumentiere deine Fehlerbehandlungsroutinen. So kannst du und andere später nachvollziehen, was bei einem Fehler passieren soll.

  • Verwende Fehlernummern in Kombination mit Select Case, um spezifische Fehler zu behandeln und unterschiedliche Aktionen auszuführen.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen On Error GoTo und On Error Resume Next? On Error GoTo springt zu einer definierten Stelle im Code, wenn ein Fehler auftritt, während On Error Resume Next den Fehler ignoriert und das Programm fortsetzt.

2. Wie können ich sicherstellen, dass Fehler richtig behandelt werden? Stelle sicher, dass du nach jeder kritischen Anweisung On Error GoTo oder On Error Resume Next verwendest und die Sprungmarken gut dokumentiert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige