VBA-Fehlerbehandlung

Excel VBA-Fehlerbehandlung

Wenn wir in VBA mit Codes arbeiten, können viele verschiedene Arten von Fehlern auftreten. Die Fehlerbehebung wird als Fehlerbehandlung bezeichnet. Jetzt können einige Fehler in der Syntax auftreten, die sich selbst hervorheben, aber wenn ein Fehler vorliegt Was außerhalb des Bereichs liegt oder etwas, das nicht existiert, gibt uns ein Popup für dasselbe. Es ist wichtig zu wissen, welcher Fehlercode für welchen Fehler gilt, um den Fehler im Code zu identifizieren.

In Excel VBA werden beim Ausführen eines beliebigen Satzes von Codes Fehler angezeigt. Einige dieser Fehler sind Syntaxfehler, andere sind nicht ausführbare Fehler. Der Syntaxfehler tritt auf, wenn der Benutzer von Excel selbst rot hervorgehoben wird. Aber wenn es einen anderen Laufzeitfehler gibt, wie wir damit umgehen und wie wir darüber hinausgehen, werden wir in diesem Artikel behandeln.

Abgesehen von Syntaxfehlern müssen die anderen Laufzeitfehler beim Ausführen eines beliebigen Satzes von Codes behandelt werden. Lassen Sie mich zunächst ein Beispiel geben, wie der andere Laufzeitfehler auftritt. Schauen Sie sich den folgenden Code an:

Dies ist ein Beispielcode, der bei Ausführung zurückgibt, was in der msgbox-Funktion geschrieben ist. Aber wie wir sehen können, gibt es in der zweiten Zeile des Codes 4/0, was mathematisch nicht möglich ist, so dass ein Laufzeitfehler zurückgegeben wird. Lassen Sie uns den obigen Code ausführen und den Fehler sehen, den wir bekommen werden.

Dies ist der Fehler, den wir beim Ausführen des angegebenen Codes erhalten. Wie wir mit diesem Fehler umgehen, geschieht durch die Fehlerbehandlung.

Es gibt zwei Methoden zur Behandlung von Fehlern:

  1. Bei Fehler Springen und
  2. On Error Resume Next.

Erläuterung

Wie oben erläutert, treten in VBA viele Arten von Fehlern auf, einige sind Syntax und andere Laufzeit. Syntaxfehler sind bereits in roter Farbe hervorgehoben. Siehe unten Screenshot.

Während der andere Laufzeitfehler ist. Grundsätzlich führt Excel die folgenden drei Schritte aus: Entweder wird ein Fehler angezeigt oder dieser Fehler wird ignoriert, oder es werden bestimmte Anweisungen angezeigt. Um solche Aufgaben auszuführen, müssen wir Anweisungen geben. Dies wird als Fehlerbehandlung bezeichnet.

Wie gehe ich mit Fehlern im VBA-Code um?

Sie können diese VBA-Fehlerbehandlungs-Excel-Vorlage hier herunterladen - VBA-Fehlerbehandlungs-Excel-Vorlage

Beispiel 1

Nehmen wir für das erste Beispiel den ersten Code, den wir als Demonstration verwendet haben. Im obigen Beispiel haben wir gesehen, dass der Code bei der zweiten msgbox-Funktion einen Laufzeitfehler ausgibt.

Schreiben Sie nach dem Öffnen der Unterfunktion den folgenden Code:

Code:

 Sub Sample () On Error Resume Next MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Wenn wir nun den obigen Code ausführen, sehen wir, dass die Codezeile mit dem Fehler nicht ausgeführt wird. Excel überspringt diese Zeile und setzt sie in der nächsten Zeile fort.

Es gibt eine andere Methode, um den Fehler zu behandeln: vba Goto-Anweisung. Wir bieten Excel ein Ziel, zu dem wir gehen können, wenn ein Fehler gefunden wird. Anstelle des vorherigen Fehlerbehandlungscodes haben wir den folgenden Code eingefügt:

Code:

 Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 End Sub 

Wir geben Excel Az als Ziel an, zu dem wir gehen können, wenn ein Fehler gefunden wird. Schreiben Sie nun nach der msgbox einen weiteren Code wie folgt:

Code:

 Sub Sample () On Error GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Fertig: Sub beenden 

Jetzt müssen wir das Ziel az als das definieren, was es tun soll, wenn Excel einen Fehler im Code findet.

Code:

 Sub Sample () Bei Fehler GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 Fertig: Beenden Sub az: MsgBox "Dies ist ein Fehler" & Err.Description End Sub 

Wenn wir diesen Code ausführen, wird das Ergebnis angezeigt.

Dies ist das erste Ergebnis der Nachrichtenbox. Da wir wissen, dass in der nächsten Zeile unseres Codes ein Fehler vorliegt, sehen wir uns das Ergebnis an, das Excel liefert.

Die err.description oben im Code hilft uns, genau zu zeigen, was der Fehler in unserem Code aufgetreten ist.

Beispiel 2

Wir haben gelernt, mit Fehlern in unseren Codes umzugehen. Schauen wir uns ein weiteres Beispiel für den Umgang mit Fehlern an. Betrachten Sie den folgenden Code als unser zweites Beispiel.

Wir haben einen etwas ähnlichen Fehler wie in Beispiel 1. Der Fehler steht in Zeile d = i / b. Jetzt werden wir diese Fehler mit den beiden oben erläuterten Methoden behandeln.

Schreiben Sie nach dem Öffnen der Unterfunktion den folgenden Code:

Code:

 Sub Sample2 () On Error Resume Next bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d End Sub 

Wenn wir nun unseren Code ausführen, können wir sehen, dass er die zweite Zeile ignoriert und nur den Wert für C anzeigt.

Der obige Fehlerbehandler war als nächstes ein Lebenslauf. Jetzt verwenden wir den Befehl Gehe zu, in dem wir Excel ein Ziel mitteilen, das zu gehen ist, wenn ein Fehler auftritt. Notieren Sie den folgenden Code:

Code:

 Sub Sample2 () On Error GoTo bx Dim i als Ganzzahl, b als Ganzzahl, c als Ganzzahl, d als Ganzzahl i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d

Der bx ist ein Ziel, das angegeben wird, wenn ein Fehler auftritt, nachdem msgbox D den folgenden Code notiert hat:

Code:

 Sub Sample2 () On Error GoTo bx Dim i As Integer, b As Integer, c As Integer, d As Integer i = 2 b = 0 c = i + b MsgBox cd = i / b MsgBox d DOne: Sub beenden 

Now we need to define the destination Bx what it should do when it encounters an error, So write down the following code,

Code:

 Sub Sample2() On Error GoTo bx Dim i As Integer , b As Integer , c As Integer , d As Integer i = 2 b = 0 c = i + b MsgBox c d = i / b MsgBox d DOne: Exit Sub bx: MsgBox " This is another Error " & Err.Description End Sub 

Now when we execute the code we can see that excel first gives us the value for C.

Now in another step, it will give us the prompt we provided it when it encounters an error.

This is how we handle the normal runtime errors in Excel VBA.

Things to Remember

There are a few things we need to remember about Error Handling:

  1. On Error Resume Next Ignores the error.
  2. On Error GoTo Gives excel a destination when it encounters an error.
  3. The description is used to show the exact error occurred to the user.