Fehlerbehandlung in Excel VBA - Einfache Excel-Makros

Inhaltsverzeichnis

Im Folgenden betrachten wir zwei Programme in Excel VBA. Einfach ein Programm ignoriert Fehler. Das andere Programm setzt die Ausführung an einer bestimmten Zeile fort bei einem Fehler.

Lage:

Beide Programme berechnen die Quadratwurzel von Zahlen.

Quadratwurzel 1

Fügen Sie der Befehlsschaltfläche "Quadratwurzel 1" die folgenden Codezeilen hinzu.

1. Zuerst deklarieren wir zwei Range-Objekte. Wir nennen die Range-Objekte rng und cell.

Dim rng als Bereich, Zelle als Bereich

2. Wir initialisieren das Range-Objekt rng mit dem ausgewählten Bereich.

Set rng = Auswahl

3. Wir möchten die Quadratwurzel jeder Zelle in einem zufällig ausgewählten Bereich berechnen (dieser Bereich kann beliebig groß sein). In Excel VBA können Sie dafür die For Each Next-Schleife verwenden. Fügen Sie die folgenden Codezeilen hinzu:

Für jede Zelle In rng
Nächste Zelle

Hinweis: rng und cell werden hier zufällig ausgewählt, Sie können beliebige Namen verwenden. Denken Sie daran, sich im Rest Ihres Codes auf diese Namen zu beziehen.

4. Fügen Sie der Schleife die folgende Codezeile hinzu.

Bei Fehler Fortsetzen als nächstes

5. Als nächstes berechnen wir die Quadratwurzel eines Wertes. In Excel VBA können wir dafür die Sqr-Funktion verwenden. Fügen Sie der Schleife die folgende Codezeile hinzu.

cell.Value = Sqr(cell.Value)

6. Beenden Sie den Visual Basic-Editor und testen Sie das Programm.

Ergebnis:

Fazit: Excel VBA hat Zellen ignoriert, die ungültige Werte wie negative Zahlen und Text enthalten. Ohne die Anweisung 'On Error Resume Next' zu verwenden, würden Sie zwei Fehler erhalten. Achten Sie darauf, die Anweisung 'On Error Resume Next' nur zu verwenden, wenn Sie sicher sind, dass das Ignorieren von Fehlern in Ordnung ist.

Quadratwurzel 2

Fügen Sie der Befehlsschaltfläche "Quadratwurzel 2" die folgenden Codezeilen hinzu.

1. Das gleiche Programm wie Square Root 1, aber ersetzen Sie 'On Error Resume Next' durch:

Bei Fehler GoTo InvalidValue:

Hinweis: InvalidValue wird hier zufällig ausgewählt, Sie können einen beliebigen Namen verwenden. Denken Sie daran, sich im Rest Ihres Codes auf diesen Namen zu beziehen.

2. Fügen Sie außerhalb der For Each Next-Schleife zunächst die folgende Codezeile hinzu:

Abo beenden

Ohne diese Zeile wird der Rest des Codes (Fehlercode) ausgeführt, auch wenn kein Fehler vorliegt!

3. Excel VBA setzt die Ausführung in der Zeile fort, die mit 'InvalidValue:' beginnt, wenn ein Fehler auftritt (Doppelpunkt nicht vergessen). Fügen Sie die folgende Codezeile hinzu:

Ungültiger Wert:

4. Wir halten unseren Fehlercode vorerst einfach. Wir zeigen eine MsgBox mit etwas Text und der Adresse der Zelle an, in der der Fehler aufgetreten ist.

MsgBox "kann Quadratwurzel in Zelle nicht berechnen" & cell.Address

5. Fügen Sie die folgende Zeile hinzu, um Excel VBA anzuweisen, die Ausführung nach der Ausführung des Fehlercodes fortzusetzen.

Weiter

6. Beenden Sie den Visual Basic-Editor und testen Sie das Programm.

Ergebnis:

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave