VBA On Error

VBA On Error ist eine einfache Methode zur Behandlung unerwarteter Ausnahmen in Excel-Makros. Es ist bekannt, dass wir keinen Code ohne Fehler schreiben können. Manchmal führt das Schreiben von großem Code bereits beim Kompilieren zu Fehlern. Um diese Art von Situation zu vermeiden, fügen wir eine Fehlermeldung hinzu, die uns anstelle der richtigen Antwort oder des richtigen Fehlercodes die Meldung mit dem Fehlercode anzeigt. Das würde so aussehen, als hätten wir die Ausgabe unserer Berechnung, aber es ist der Fehlercode, der eingeprägt wird.

Wie Verwenden von Excel VBA auf Fehleranweisung in Excel?

Es gibt drei Arten von Fehlern in VBA. Lassen Sie uns anhand einiger Beispiele verschiedene Arten verstehen.

Beispiel 1

Der erste Fehlertyp ist ein Code-Kompilierungsfehler, der auftritt, wenn ein Code nicht deklariert ist oder wenn Variablen nicht möglich sind. Um mehr zu verstehen, verwenden wir einen einfachen mathematischen Ausdruck der Teilung. Gehen Sie dazu in das Menü Einfügen von VBA und wählen Sie Modul wie unten gezeigt.

Öffnen Sie nun Unterkategorie und fügen Sie einen beliebigen Namen hinzu. Da wir On Error verwenden, haben wir den gleichen Namen vergeben.

 Sub OnError () End Sub 

Definieren Sie nun 2 oder 3 beliebige Ganzzahlen. Hier nehmen wir X und Y als ganze Zahlen.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl End Sub 

Wie oben erläutert, berechnen wir nun den mathematischen Teilungsausdruck. Für X werden wir ein Zeichen in Numerator setzen und es durch 0 teilen. Und Y wird 20/2 sein, was vollständige Zahlen sind.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl X = Test / 0 Y = 20/2 End Sub 

Führen Sie nun den Code mit der Taste F5 aus oder klicken Sie auf die Wiedergabetaste (siehe Abbildung unten). Es wird der Laufzeitfehler 6 ausgegeben, der den Fehler "Text über Nummer" anzeigt.

Um diesen Fehler zu überschreiben, fügen wir eine Zeile On Error Resume Next hinzu, bevor wir den mathematischen Code schreiben. Der Fehlercode wird übersprungen, aber das Ergebnis des zweiten mathematischen Codes wird nicht angezeigt. Dadurch wird die Fehlermeldung nur ausgeblendet, wenn verschiedene Codezeilen wie unten gezeigt vorhanden sind. Versuchen Sie nun, den Code ebenfalls auszuführen.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl On Error Resume Next X = Test / 0 Y = 20/2 MsgBox X MsgBox Y End Sub 

Um diesen Fehler zu überschreiben, fügen wir eine Zeile On Error Resume Next hinzu, bevor wir den mathematischen Code schreiben. Der Fehlercode wird übersprungen, aber das Ergebnis des zweiten mathematischen Codes wird nicht angezeigt. Dadurch wird die Fehlermeldung nur ausgeblendet, wenn verschiedene Codezeilen wie unten gezeigt vorhanden sind. Versuchen Sie nun, den Code ebenfalls auszuführen.

Beispiel # 2

In diesem Beispiel betrachten wir diese mathematische Division, die ein unendliches Ergebnis liefert, aber bei der Codierung # DIV / 0 ergibt. Um dies zu demonstrieren, betrachten wir eine weitere Ganzzahl Z zusammen mit X und Y in der Unterkategorie, wie unten gezeigt.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl End Sub 

Rahmen Sie nun alle Ganzzahlen X, Y und Z mit einem mathematischen Divisionsausdruck ein und verwenden Sie zum Drucken die MsgBox-Funktion in VBA des Ergebnisses jeder Ganzzahl.

Im Folgenden haben wir für Ganzzahl X 10 durch 0, 20 durch 2 und 30 durch 4 geteilt.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Führen Sie nun den Code mit der Taste F5 oder manuell wie unten gezeigt aus.

Wie wir im obigen Screenshot sehen können, ist Laufzeitfehler 11, was bedeutet, dass der Fehler mit der Nummer zusammenhängt. Um dies zu überwinden, fügen Sie eine Zeile On Error Resume Next vor dem mathematischen Ausdruck hinzu (siehe unten).

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl On Error Resume Next X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Wenn wir nun den Code ausführen, erhalten wir Null für die erste Ganzzahl X und für Y und Z erhalten wir die entsprechenden Divisionsantworten, wie unten gezeigt.

Beispiel # 3

Der zweite Fehlertyp tritt auf, wenn falsche Daten in den Code eingegeben werden. Zu diesem Zweck betrachten wir 3 Ganzzahlen X, Y und Z, indem wir die Unterkategorie in VBA wie unten gezeigt öffnen.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl End Sub 

Betrachten Sie nun auch die gleiche mathematische Unterteilung, die wir im obigen Beispiel gesehen haben.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Wenn wir den Code ausführen, wird die gleiche Fehlermeldung wie bei Laufzeitfehler 11 angezeigt.

Um diesen Fehler zu überschreiben, verwenden Sie " On Error GoTo" mit dem Wort "Result", um die Fehlermeldung zu überspringen und die Ausgabe zu erhalten, die wie unten gezeigt funktioniert.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl On Error GoTo ZResult: X = 10/0 Y = 20/2 ZResult: Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Führen Sie nun den Code erneut aus. Wir erhalten das gleiche Ergebnis wie im vorherigen Beispiel.

On Error GoTo ZResult hilft uns, direkt von der angegebenen Ergebnispunkt-Ganzzahl zu springen, wie wir es für die Ganzzahl Z getan haben.

Beispiel # 4

In der dritten Art von Fehler, wenn wir den Code ausführen und VBA nicht in der Lage ist, die Codezeile zu verstehen. Dies kann mit Hilfe des Codes On Error Resume Next zusammen mit MsgBox Err.Number erfolgen . Betrachten Sie die gleichen Daten wie in den obigen Beispielen. Wir werden wieder die gleichen 3 ganzen Zahlen X, Y und Z sehen, wie unten gezeigt.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl End Sub 

Lassen Sie zum Drucken der Ergebnisausgabe Meldungsfelder für alle Ganzzahlen als Ausgabe zu.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Wenn wir nun den vollständigen Code ausführen, erhalten wir eine Fehlermeldung mit dem mathematischen Fehler Laufzeitfehler 11.

Um diesen Fehler zu überschreiben, verwenden wir On Error Resume Next.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl On Error Resume Next X = 10/0 Y = 20/2 Z = 30/4 MsgBox X MsgBox Y MsgBox Z End Sub 

Und führen Sie den Code aus. Dies gibt das Verwendungsergebnis auf einer gültigen mathematischen Linie wie unten gezeigt.

Fügen Sie nun die Codezeile ZResult vor dem mathematischen Ausdruck für die Z-Ganzzahldivision und die Codezeile MsgBox Err.Number am Ende des Codes hinzu, wie unten gezeigt.

 Sub OnError () Dim X als Ganzzahl, Y als Ganzzahl, Z als Ganzzahl On Error Resume Next X = 10/0 Y = 20/2 ZErgebnis: Z = 30/4 MsgBox X MsgBox Y MsgBox Z MsgBox Err.Number End Sub 

Führen Sie nun den Code mit der Taste F5 oder durch Drücken der Wiedergabetaste wie unten gezeigt aus.

Wie wir in den obigen Screenshots sehen können. Das erste Meldungsfeld hat 0, was das Überschreiben eines falschen mathematischen Ausdrucks bedeutet. 2. und 3. haben ein Divisionsergebnis von Y- und Z-Ganzzahlen. Und das letzte Meldungsfeld hat den Laufzeitfehlercode 11, der wahrscheinlich der Fehlercode der Divisionsausdrücke von X Ganzzahlen ist.

Vorteile von VBA On Error

  • Wir können jede mathematische Formel berechnen, auch wenn sie falsch ist.
  • Bei größeren Codierungsstrukturen, bei denen Chancen bestehen oder Fehler auftreten, kann die Verwendung dieser Methoden auch in der Codezeile zu korrekten Ergebnissen führen.
  • Dies ergibt ein besseres Ergebnis als bei normalen Excel-Berechnungen.

Dinge, an die man sich erinnern sollte

  • Speichern Sie die Datei immer in einer Excel-Datei mit Makros, damit der erstellte VBA-Code mehrmals verwendet werden kann.
  • Kompilieren Sie immer den geschriebenen Code, bevor Sie eine Excel-Anforderung implementieren.
  • Weisen Sie den geschriebenen Code bei Bedarf einer beliebigen Schaltfläche zu, damit wir schnell auf die Schaltfläche klicken und den Code ausführen können.

Sie können diese Excel-Vorlage für VBA-Fehler hier herunterladen - Excel-Vorlage für VBA-Fehler

Empfohlene Artikel

Dies war eine Anleitung zu Excel VBA On Error. Hier haben wir die Verwendung von VBA On Error Statement zusammen mit einigen praktischen Beispielen und einer herunterladbaren Excel-Vorlage besprochen. Sie können auch unsere anderen Artikelvorschläge durchgehen -

  1. Wie benutze ich die VBA TRIM-Funktion?
  2. Zahlenformat in VBA
  3. Anleitung zur Excel VBA Do While-Schleife
  4. Wie benutze ich die VBA-Suchfunktion?

Kategorie: