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

"Error" zurücksetzen

Forumthread: "Error" zurücksetzen

"Error" zurücksetzen
30.10.2003 16:47:50
Steph@n
Hallo,

ich habe ein Makro, welchen mit einer For-Next-Schleife alle Zellen eines Bereichs durhläuft und dann den Zellinhalt mit Hilfe der Find-Arbeitsmappenfunktion mit einem String vergleicht. Falls keine Übereinstimmung gefundet wird, bricht Excel mit Fehler '1004' ab. Dieses Problem wollte ich dadurch abfangen, dass ich vor der Funktionsverwendung eine "On Error GoTo Weiter"-Anweisung einbaue und dort(Weiter-Stelle) die Fehlernummer mit Err.Clear zurücksetze.

Mein Problem ist folgendes. Diese Vorgehensweise funktioniert genau 1mal. Beim nächsten Durchlauf reagiert die "On Error GoTo Weiter"-Anweisung nicht mehr.

Was mach ich falsch?

Gruß Stephan
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Error" zurücksetzen
30.10.2003 17:06:49
Michael Scheffler
Hi,

ohne Code sieht es schlecht aus. Aber mal so als Tipp: Für solche Sachen wie hier "On Error Resume Next". Und für Fehler, die Du vorher nicht abfangen kannst "On Error Goto".

Gruß

Micha
AW: "Error" zurücksetzen
31.10.2003 08:34:00
Steph@n
Hallo ,

hier das Coding. Ich hoffe es ist verständlich. Der Fehler tritt wie gesagt, bei der On Error-Anweisung
auf. Der On Error GoTo Weiter-Befehl zieht nur beim ersten Durchlauf, beim zweiten wird es ignoriert!


Bei Unklarheiten bitte einfach fragen!

Gruss Stephan

Gruss
Anzeige
AW: "Error" zurücksetzen
30.10.2003 20:06:41
Christian
Hi Stephan,

probiers mal mit on error goto 0.
Ansonsten wäre der Code nicht schlecht, dann versteht man das ganze etwas schneller.
Gruss
Christian
AW: "Error" zurücksetzen
31.10.2003 08:33:17
Steph@n
Hallo ,

hier das Coding. Ich hoffe es ist verständlich. Der Fehler tritt wie gesagt, bei der On Error-Anweisung
auf. Der On Error GoTo Weiter-Befehl zieht nur beim ersten Durchlauf, beim zweiten wird es ignoriert!


Bei Unklarheiten bitte einfach fragen!

Gruss Stephan

Gruss
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehler in Excel-Makros beheben: "Error" zurücksetzen


Schritt-für-Schritt-Anleitung

Um den Fehler '1004' in deinem Excel-Makro zu beheben, kannst du folgende Schritte durchführen:

  1. Füge die Fehlerbehandlungsroutine hinzu: Stelle sicher, dass du die "On Error"-Anweisungen korrekt verwendest. Setze die Anweisung On Error GoTo Weiter vor den Code, der den Fehler verursachen kann.

    Sub MeinMakro()
        On Error GoTo Weiter
        ' Dein Code hier, der einen Fehler verursachen könnte
        ' Zum Beispiel eine For-Next-Schleife
        For Each Zelle In Range("A1:A10")
            ' Vergleich mit Find
            Set Ergebnis = Zelle.Find("Suchbegriff")
            If Ergebnis Is Nothing Then
                ' Kein Ergebnis gefunden, das könnte Fehler verursachen
            End If
        Next Zelle
    Weiter:
        Err.Clear
    End Sub
  2. Verwende On Error Resume Next: Dies ist nützlich, wenn du nicht sicher bist, ob ein Fehler auftritt. Diese Anweisung ignoriert den Fehler und macht mit dem nächsten Befehl weiter.

  3. Setze den Fehlerstatus zurück: Nach der Fehlerbehandlung kannst du den Fehlerstatus mit Err.Clear zurücksetzen.


Häufige Fehler und Lösungen

  1. Fehler wird beim zweiten Durchlauf ignoriert: Wenn die On Error GoTo-Anweisung nicht mehr funktioniert, kann es daran liegen, dass der Fehlerstatus nicht zurückgesetzt wurde. Achte darauf, Err.Clear nach der Fehlerbehandlung zu verwenden.

  2. Falsche Verwendung von On Error Resume Next: Wenn du diese Anweisung verwendest, stelle sicher, dass du den Code, der Fehler verursachen könnte, direkt danach platzierst, sonst ignorierst du auch mögliche andere Fehler.


Alternative Methoden

Falls du die On Error-Anweisungen nicht verwenden möchtest, kannst du auch die Fehlerüberprüfung direkt im Code durchführen. Beispielsweise kannst du den Rückgabewert der Find-Methode prüfen, bevor du darauf zugreifst.

Set Ergebnis = Zelle.Find("Suchbegriff")
If Not Ergebnis Is Nothing Then
    ' Weiterverarbeitung
Else
    ' Fehlerbehandlung
End If

Praktische Beispiele

Hier ist ein einfaches Beispiel eines Makros, das die Fehlerbehandlung korrekt implementiert:

Sub SucheUndFehlerbehandlung()
    Dim Zelle As Range
    Dim Ergebnis As Range

    On Error GoTo Fehlerbehandlung
    For Each Zelle In Range("A1:A10")
        Set Ergebnis = Zelle.Find("Suchbegriff")
        If Ergebnis Is Nothing Then
            MsgBox "Keine Übereinstimmung für " & Zelle.Value
        End If
    Next Zelle

    Exit Sub

Fehlerbehandlung:
    MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    Err.Clear
End Sub

Tipps für Profis

  • Nutze On Error GoTo 0, um die Fehlerbehandlung zu deaktivieren, wenn du sicher bist, dass kein Fehler mehr auftreten kann.
  • Dokumentiere deinen Code, um anderen zu helfen, die Logik deiner Fehlerbehandlung besser zu verstehen.
  • Teste dein Makro gründlich, um sicherzustellen, dass alle potenziellen Fehlerquellen abgedeckt sind.

FAQ: Häufige Fragen

1. Warum funktioniert On Error GoTo nicht mehr nach dem ersten Durchlauf?
Das liegt oft daran, dass der Fehlerstatus nicht zurückgesetzt wurde. Verwende Err.Clear, um den Fehlerstatus zu löschen.

2. Was ist der Unterschied zwischen On Error Resume Next und On Error GoTo?
On Error Resume Next ignoriert Fehler und fährt mit dem nächsten Befehl fort, während On Error GoTo zu einer definierten Fehlerbehandlungsroutine springt.

3. Wie kann ich sicherstellen, dass mein Makro nicht ohne Fehler läuft?
Implementiere eine gründliche Fehlerbehandlung und teste dein Makro regelmäßig mit verschiedenen Eingaben, um sicherzustellen, dass alle Szenarien abgedeckt sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige