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

Forumthread: On Error GoTo funktioniert auch ohne Fehler

On Error GoTo funktioniert auch ohne Fehler
06.11.2005 04:16:02
M.
Hallo,
Hab wieder mal ein kleines Problem.
Der On Error GoTo Befehl funktioniert auch ohne Fehler.
Z.B. bei dem Befehl:
Range("a7:c30").Select
On Error GoTo ende
Selection.Find(What:="Meier", SearchFormat:=False).Activate
ende:
MsgBox "nicht vorhanden"
wird Meier zwar gefunden, aber die MsgBox wird trotzdem aufgerufen.
Kann mir jemand weiterhelfen?
Besten Dank!
mfg
Karsten
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: On Error GoTo funktioniert auch ohne Fehler
06.11.2005 04:56:54
chris
Das ist deshalb so weil du durch den goto die textstelle direkt aufrufen würdest und die davorigen codezeilen überspringst.
Ist der text vorhanden wird der code nach dem ende: ganz normal ausgeführt.
Wozu on error machs doch so.

Sub neu()
Dim a As Range
Range("a7:c30").Select
Set cb = Selection.Find(What:="test", SearchFormat:=False)
If cb Is Nothing Then
MsgBox "nicht vorhanden"
Else
MsgBox "vorhanden"
End If
End Sub

P.s Rückmeldung wäre nett grüße Christian
Anzeige
AW: On Error GoTo funktioniert auch ohne Fehler
06.11.2005 08:52:50
M.
Hallo Christian
Wußte nicht dass, es sowas gibt. Klappt. Nochmal Danke.
Beste Grüße von Karsten
AW: On Error GoTo funktioniert auch ohne Fehler
06.11.2005 10:05:45
Sigi
Hallo Karsten,
es fehlte nur ein "Exit Sub", sonst wird die MsgBox selbstverständlich auch abgearbeitet.

Sub Makro()
Range("a7:c30").Select
On Error GoTo ende
Selection.Find(What:="Meier", SearchFormat:=False).Activate
Exit Sub
ende:
MsgBox "nicht vorhanden"
End Sub

Gruß
Sigi
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

On Error GoTo: Fehlerbehebung und richtige Anwendung in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne den VBA-Editor in Excel (Alt + F11) und erstelle ein neues Modul.

  2. Code schreiben: Füge den folgenden VBA-Code ein, um zu testen, wie der On Error GoTo Befehl funktioniert:

    Sub Beispiel()
       Dim a As Range
       Range("A7:C30").Select
       On Error GoTo ende
       Selection.Find(What:="Meier", SearchFormat:=False).Activate
       Exit Sub
    ende:
       MsgBox "nicht vorhanden"
    End Sub
  3. Makro ausführen: Führe das Makro aus, um zu sehen, wie die Fehlerbehandlung funktioniert.

  4. Fehlerbehebung: Stelle sicher, dass der Exit Sub Befehl vor dem ende: Label steht. Dieser Befehl stellt sicher, dass die MsgBox nicht angezeigt wird, wenn der gesuchte Wert gefunden wird.


Häufige Fehler und Lösungen

  • Problem: vba on error goto funktioniert nicht

    • Lösung: Stelle sicher, dass der Exit Sub Befehl vor dem Label steht. Andernfalls wird die MsgBox immer angezeigt, auch wenn kein Fehler auftritt.
  • Problem: MsgBox wird angezeigt, obwohl der Wert gefunden wurde.

    • Lösung: Überprüfe, ob Selection.Find ein Ergebnis zurückgibt, bevor du die MsgBox aufrufst. Verwende If-Anweisungen zur besseren Fehlerbehandlung.

Alternative Methoden

  • On Error Resume Next: Anstatt On Error GoTo, kannst du On Error Resume Next verwenden. Dies erlaubt es dem Code, bei einem Fehler einfach weiterzufahren, ohne die Ausführung zu unterbrechen.

    Sub BeispielResumeNext()
       Dim a As Range
       Range("A7:C30").Select
       On Error Resume Next
       Selection.Find(What:="Meier", SearchFormat:=False).Activate
       If Err.Number <> 0 Then
           MsgBox "nicht vorhanden"
       End If
       On Error GoTo 0 ' Fehlerbehandlung zurücksetzen
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, um die On Error GoTo und andere Fehlerbehandlungsmechanismen zu demonstrieren:

  1. Fehlerbehandlung mit MsgBox:

    Sub FehlerMitMsgBox()
       On Error GoTo Fehler
       Dim x As Integer
       x = 1 / 0 ' Division durch Null
       Exit Sub
    Fehler:
       MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
    End Sub
  2. Fehlerbehandlung in Access VBA:

    Sub AccessBeispiel()
       On Error Resume Next
       ' Code hier, der möglicherweise einen Fehler verursacht
       If Err.Number <> 0 Then
           MsgBox "Ein Fehler ist aufgetreten in Access: " & Err.Description
       End If
       On Error GoTo 0
    End Sub

Tipps für Profis

  • Verwende On Error GoTo ErrorHandler für eine strukturierte Fehlerbehandlung.
  • Halte deine Fehlerbehandlungsroutinen so kurz wie möglich, um die Lesbarkeit zu verbessern.
  • Dokumentiere deine Fehlerbehandlungsstrategien im Code, damit andere (oder Du selbst) sie später verstehen können.
  • Teste deine Makros gründlich, um sicherzustellen, dass die Fehlerbehandlung wie erwartet funktioniert.

FAQ: Häufige Fragen

1. Warum funktioniert On Error GoTo nicht wie erwartet?
Es kann sein, dass der Exit Sub Befehl fehlt. Achte darauf, dass dieser vor dem Error-Label steht, um zu verhindern, dass die Fehlerbehandlung in jedem Fall ausgeführt wird.

2. Was ist der Unterschied zwischen On Error GoTo und On Error Resume Next?
On Error GoTo leitet zu einem spezifischen Fehlerbehandlungsabschnitt, während On Error Resume Next den Code einfach weiterlaufen lässt, auch wenn ein Fehler auftritt.

3. Wie kann ich die Fehlermeldungen anpassen?
Du kannst die Fehlermeldungen in der MsgBox anpassen, indem du Err.Description verwendest, um spezifische Fehlermeldungen anzuzeigen.

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