Im Folgenden werden wir zwei Programme in Excel VBA aussehen. Ein Programm einfach ignoriert Fehler. Das andere Programm setzt die Ausführung an einer bestimmten Linie auf einen Fehler trifft.

Situation:

Beide Programme berechnen die Quadratwurzel von Zahlen.

Error Handling in Excel VBA

Square Root 1 Fügen Sie die folgenden Codezeilen in die ‚Quadratwurzel 1‘ Befehlsschaltflächen.

  1. Zuerst erklären wir zwei Range-Objekte. Wir rufen die Range-Objekte rng und Zelle.

Dim rng As Range, cell As Range
  1. Wir initialisieren das Range-Objekt RNG mit dem gewählten Bereich.

Set rng = Selection
  1. Wir wollen die Quadratwurzel von jeder Zelle in einem zufällig ausgewählten Bereich berechnen (dieser Bereich kann von beliebiger Größe sein). In Excel VBA können Sie die For Each Next-Schleife für diese. Fügen Sie die folgenden Codezeilen:

For Each cell In rng

Next cell

Hinweis: RNG und Zelle sind hier zufällig ausgewählt, können Sie alle Namen verwenden.

Denken Sie daran, diese Namen in dem Rest des Codes zu beziehen.

  1. In der Schleife die folgende Codezeile.

On Error Resume Next
  1. Als nächstes berechnen wir die Quadratwurzel eines Wertes. In Excel VBA, können wir die Sqr Funktion für diese. Fügen Sie die folgende Codezeile an der Schleife.

cell.Value = Sqr(cell.Value)
  1. Um den Visual Basic-Editor verlassen und das Programm testen.

Ergebnis:

On Error Resume Next Result

Fazit: Excel VBA hat Zellen mit ungültigen Werten wie negative Zahlen und Text ignoriert. Ohne die Verwendung der ‚On Error Resume Next‘ Anweisung würden Sie zwei Fehlermeldungen erhalten. Achten Sie darauf, nur die Verwendung ‚On Error Resume Next‘ Anweisung, wenn Sie sicher sind, zu ignorieren Fehler in Ordnung ist.

Square Root 2 Fügen Sie die folgenden Codezeilen in die ‚Quadratwurzel 2‘ Befehlsschaltflächen.

Root-1 1. Das gleiche Programm wie Square, aber ersetzen ‚On Error Resume Next‘ mit:

On Error GoTo InvalidValue:

Hinweis: InvalidValue zufällig hier gewählt wird, können Sie einen beliebigen Namen verwenden.

Denken Sie daran, diesen Namen in dem Rest des Codes zu beziehen.

  1. Außerhalb der For Each Next-Schleife, zuerst die folgende Codezeile hinzu:

Exit Sub

Ohne diese Linie, wird der Rest des Codes (Fehlercode) ausgeführt wird, auch wenn es kein Fehler! 3. Excel-VBA-Ausführung an der Zeile weiter mit dem Anfangsbuchstaben ‚InvalidValue:‘ auf einen Fehler trifft (vergessen Sie nicht, den Doppelpunkt). Fügen Sie die folgende Codezeile:

InvalidValue:
  1. Wir halten unsere Fehlercode einfach für den Moment. Wir zeigen eine MsgBox mit etwas Text und die Adresse der Zelle, in der der Fehler auftrat.

MsgBox "can't calculate square root at cell " & cell.Address
  1. Fügen Sie Excel VBA die folgende Zeile zu instruieren fortzusetzen Ausführung nach den Fehlercode ausgeführt wird.

Resume Next
  1. Um den Visual Basic-Editor verlassen und das Programm testen.

Ergebnis:

On Error GoTo Result

On Error GoTo Result

On Error GoTo Result