VBA bei Fehler Gehe zu 0 - Wie verwende ich bei Fehler GoTo 0 in Excel VBA?

Inhaltsverzeichnis

Excel VBA bei Fehler Gehe zu 0

VBA On Error GoTo 0 ist eine Fehlerbehandlungsanweisung, mit der der aktivierte Fehlerbehandler in der Prozedur deaktiviert wird. Es wird als "Error Handler Disabler" bezeichnet.

Die Fehlerbehandlung in einer der Programmiersprachen ist eine Meisterklasse, die alle Codierer verstehen müssen. VBA-Programmiersprache, und wir haben auch Fehlerbehandlungstechniken in dieser Programmiersprache. "On Error Resume Next" aktiviert die Fehlerbehandlungsroutine, und "On Error GoTo 0" deaktiviert die aktivierte Fehlerbehandlungsroutine.

Sowohl "On Error Resume Next" als auch "On Error GoTo 0" sind Paare, die für die Effizienz des Codes zusammen verwendet werden müssen. Um den Fehler zu behandeln, müssen wir mit der Anweisung "On Error Resume Next" beginnen und diesen Fehlerbehandler beenden. Wir müssen die Anweisung "On Error GoTo 0" verwenden.

Jeder zwischen diesen Anweisungen geschriebene Zeilencode ignoriert alle Fehler, die im Verfahren aufgetreten sind.

Wie verwende ich die On Goal GoTo 0-Anweisung?

Schauen Sie sich zum Beispiel den folgenden Code an.

Code:

Sub On_ErrorExample1 () Arbeitsblätter ("Sheet1"). Bereich auswählen ("A1"). Wert = 100 Arbeitsblätter ("Sheet2"). Bereich auswählen ("A1"). Wert = 100 End Sub

Der obige Code wählt zuerst das Arbeitsblatt mit dem Namen "Sheet1" aus und fügt in Zelle A1 den Wert 100 ein.

Code:

Arbeitsblätter ("Sheet1"). Bereich auswählen ("A1"). Wert = 100

Anschließend wird das Arbeitsblatt mit dem Namen "Sheet2" ausgewählt und derselbe Wert eingefügt.

Code:

Arbeitsblätter ("Sheet2"). Bereich auswählen ("A1"). Wert = 100

Jetzt habe ich die folgenden Blätter in meiner Arbeitsmappe.

Es gibt keine Blätter mit den Namen "Sheet1" und "Sheet2". Wenn wir den Code ausführen, tritt ein Fehler wie der folgende auf.

Da es kein Blatt mit dem Namen "Sheet1" gibt, ist ein Fehler "Index außerhalb des Bereichs" aufgetreten. Um diesen Fehler zu behandeln, füge ich oben im Makro eine Fehlerbehandlungsanweisung "On Error Resume Next" hinzu.

Code:

Sub On_ErrorExample1 () On Error Resume Next Worksheets ("Sheet1"). Select Range ("A1"). Value = 100 Worksheets ("Sheet2"). Select Range ("A1"). Value = 100 End Sub

Führen Sie nun den Code aus und sehen Sie, was passiert.

Es werden keine Fehlermeldungen ausgegeben, da die Fehlerbehandlungsanweisung On Error Resume Next aktiviert ist.

Stellen Sie sich das Szenario vor, in dem wir den Fehler ignorieren müssen, wenn das Arbeitsblatt „Sheet1“ nicht verfügbar ist. Wir müssen jedoch benachrichtigen, wenn kein Arbeitsblatt mit dem Namen „Sheet2“ vorhanden ist.

Da wir oben On Error Resume Next hinzugefügt haben , hat es begonnen, den Fehler zu behandeln, aber gleichzeitig müssen wir angeben, wie viele Zeilen wir benötigen, um diesen Fehler zu ignorieren.

In diesem Beispiel müssen wir nur den Fehler für das erste Arbeitsblatt, aber ab dem zweiten Blatt ignorieren. Der Fehler muss auftreten, wenn kein Arbeitsblatt „Sheet2“ vorhanden ist. Nachdem der erste Arbeitsblattcode die Fehler-Deaktivierungszeile On Error GoTo 0 hinzugefügt hat.

Code:

Sub On_ErrorExample1 () On Error Resume Next Worksheets ("Sheet1"). Select Range ("A1"). Value = 100 On Error GoTo 0 Worksheets ("Sheet2"). Select Range ("A1"). Value = 100 End Sub

Führen Sie nun den Code zeilenweise aus, um die Auswirkungen durch Drücken der Taste F8 zu sehen.

Wenn Sie nun die Taste F8 drücken, sobald die Codeausführung zur nächsten Zeile springt, wird die aktive Zeilenaufgabe ausgeführt. Jetzt ist die aktive Zeile (gelb gefärbte Zeile) die Fehlerbehandlungsroutine "On Error Resume Next", und die Fehlerbehandlungsroutine wird aktiviert.

Jetzt tritt ein Fehler auf. Es wird ignoriert, bis der Fehlerbehandler die Anweisung " On Error GoTo 0 " deaktiviert .

Beim vorherigen Versuch sind Fehler aufgetreten, aber drücken Sie die Taste F8 noch einmal und sehen Sie die Magie.

Ohne Fehler zu machen, wurde die Ausführung des Codes fortgesetzt, obwohl kein Arbeitsblatt „Sheet2“ zur Auswahl steht. Drücken Sie nun erneut F8.

Da es kein Blatt1 gab, kann der Wert in der A1-Zelle nicht als 500 eingefügt werden. Es wird jedoch der Wert 500 in die Zelle A1 eingefügt, je nachdem, welches Arbeitsblatt aktiv ist. Mein aktives Blatt, wenn ich den Code ausführe, war "Sheet3", daher wird der Wert 100 in die Zelle A1 eingefügt.

Jetzt lautet die aktive Codezeile " On Error GoTo 0 ", indem Sie die Taste F8 drücken. Diese Zeilenaufgabe wird ausgeführt.

Da "On Error GoTo 0" ausgeführt wird, wurde der Prozess der Fehlerbehandlung gestoppt und es werden erneut Fehler angezeigt, falls solche auftreten. Drücken Sie die Taste F8 und sehen Sie den Fehler.

Im vorherigen Fall ohne On Error GoTo 0 wurde dieser Fehler ebenfalls ignoriert. Da wir jedoch einen Fehlerbehandlungs-Disabler hinzugefügt haben, wird der Fehler erneut angezeigt.

Dinge, an die man sich hier erinnern sollte

  • Sowohl On Error Resume Next als auch On Error GoTo 0 müssen als " Error Handler Enabler " und " Error Handler Disabler " verwendet werden.
  • Jede Codezeile zwischen diesen beiden Anweisungen stößt auf einen Fehler, der ignoriert wird.
  • Wenn die On On Error GoTo 0-Anweisung vorhanden ist, wird nach dem Beenden der Unterprozedur die Fehlerbehandlungsroutine deaktiviert.

Interessante Beiträge...