Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

If Err.Number 0 Then vs. On Error GoTo

Forumthread: If Err.Number 0 Then vs. On Error GoTo

If Err.Number 0 Then vs. On Error GoTo
15.05.2003 16:35:59
Martin
Hallo,

um Fehler abzufangen, kann man ja einerseits ein


On Error GoTo Fehler
..
Fehler:
MsgBox "Error"

oder aber ein

On Error Resume Next
...
If Err.Number <> 0 Then MsgBox "error"

anbringen, wenn ich das richtig mitbekommen habe. Gibt es da eine bestimmte Vorgehensweise oder ist es egal, welche Variante ich nehme?

Gruss,
martin




Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: If Err.Number 0 Then vs. On Error GoTo
15.05.2003 16:55:14
Jens
Hallo

"On Error goto FehlerPunkt"
Dies nimmt man wenn bei einen Fehler der eigendliche Code nicht vortgesetzt werden darf. z.B. die zu öffnente Datei lies sich nicht finden dann brauch der Nachfolgende Code auch nicht versuchen etwas in dienichtgeöffnete Datei zu schreiben.

"On Error Resume Next"
Dies nimmt man wenn man den Fehler direkt Auswerten will wie bei Set. Es muss aber sichergestellt sein dass das Ignorieren das Fehlers kein Problem für das Programm darstellt.

Ich selbst abereite mit beiden je nacht dem ob der Fehler nicht so schlimm ist oder auf garkeinen Fall weiter gemacht werden darf da das sonst noch mehr Fehler auslöst.

Gruß Jens

Anzeige
Re: If Err.Number 0 Then vs. On Error GoTo
15.05.2003 16:58:05
Mike E.
Hallo,

mit "if Err..." kannst dur verschiedenen Fehlertypen unterschiedlich behandeln (was meist ja auch Sinn macht...).
Ist halt etwas differenzierter....

Gruß
Mike

Re: If Err.Number 0 Then vs. On Error GoTo
15.05.2003 16:59:34
Martin
Danke Jens, ist eigentlich auch logisch. Bei GoTo springt er direkt zur definierten Sprungmarke und lässt uU Code aus, bei Resume Next macht er dennoch weiter.

So gesehen war meine Frage falsch. Sinnvoll ist es es nach Bedarf einzusetzen.

Gruss,
Martin

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehandlung in Excel VBA: On Error GoTo vs. If Err.Number


Schritt-für-Schritt-Anleitung

  1. Fehlerbehandlung aktivieren: Du kannst Fehler in deinem VBA-Code abfangen, indem du eine Fehlerbehandlungsroutine einfügst. Verwende dazu entweder On Error GoTo oder On Error Resume Next.

  2. On Error GoTo verwenden:

    On Error GoTo Fehler
    ' Dein Code hier
    Exit Sub
    
    Fehler:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
  3. On Error Resume Next verwenden:

    On Error Resume Next
    ' Dein Code hier
    If Err.Number <> 0 Then
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If
  4. Fehlernummer abfragen: Um spezifische Fehler zu behandeln, benutze die Err.Number-Eigenschaft:

    If Err.Number = 0 Then
       ' Kein Fehler
    Else
       ' Fehlerbehandlung hier
    End If

Häufige Fehler und Lösungen

  • Fehler nicht abgefangen: Wenn du On Error Resume Next verwendest, achte darauf, dass du anschließend die Fehlernummer überprüfst. Sonst kannst du wichtige Fehler übersehen.

  • Falsche Fehlerbehandlung: Stelle sicher, dass du die richtige Fehlerbehandlungsmethode verwendest. Nutze On Error GoTo, wenn dein Code nicht fortgesetzt werden sollte, wenn ein Fehler auftritt.


Alternative Methoden

  • Try-Catch-ähnliche Struktur: In VBA gibt es keine native Try-Catch-Struktur wie in anderen Programmiersprachen, jedoch kannst du mit On Error GoTo eine ähnliche Funktionalität erreichen.

  • Fehlerprotokollierung: Es ist nützlich, Fehlermeldungen in einer Protokolldatei zu speichern, um spätere Analysen durchzuführen. Du kannst dies tun, indem du die Fehlerbeschreibung in eine Textdatei schreibst.


Praktische Beispiele

  1. Dateizugriffsfehler abfangen:

    On Error GoTo Fehler
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\Pfad\zur\Datei.xlsx")
    Exit Sub
    
    Fehler:
    MsgBox "Die Datei konnte nicht geöffnet werden."
  2. Fehler prüfen und fortfahren:

    On Error Resume Next
    Dim zahl As Double
    zahl = 1 / 0 ' Division durch null
    If Err.Number <> 0 Then
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End If

Tipps für Profis

  • Verwende Err.Clear: Nach der Fehlerbehandlung solltest du Err.Clear verwenden, um die Fehlernummer zurückzusetzen. Dies ist besonders wichtig, wenn du mehrere Fehlerbehandlungen in der gleichen Prozedur hast.

  • Verstehe die Fehlercodes: Informiere dich über die verschiedenen Excel VBA Error Codes, um gezielte und spezifische Fehlerbehandlungen durchführen zu können.


FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen On Error GoTo und On Error Resume Next?
On Error GoTo leitet die Ausführung zu einem Fehlerbehandlungsblock, während On Error Resume Next die Ausführung des Codes fortsetzt, auch wenn ein Fehler auftritt.

2. Wie kann ich spezifische Fehler identifizieren?
Du kannst die Err.Number-Eigenschaft verwenden, um den Fehlercode abzufragen und spezifische Fehlerbehandlungen durchzuführen. Zum Beispiel: If Err.Number = 1004 Then ....

3. Was mache ich, wenn ich mehrere Fehlerbehandlungen benötige?
Du kannst mehrere On Error GoTo-Blöcke definieren, aber stelle sicher, dass du die Fehlernummer nach der Behandlung zurücksetzt, indem du Err.Clear verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige