Excel VBA Befehle aus Folge 22: Laufzeitfehler abfangen

Inhalt dieser Folge:

  • Wie kann ich auf Laufzeitfehler reagieren?
  • Programm beenden, Fehlerzeile überspringen
  • Wie erstelle ich eine individuelle Fehlerverarbeitung mit Select Case?

Ausgangssituation:

  • Wir arbeiten mit der rechts dargestellten Arbeitsmappe. In dieser befinden sich 2 Tabellenblätter, wobei Tabellenblatt2 leer ist.
  • Zudem haben wir ein kleines Programm, welches die folgenden Schritte ausführt.
    • 1. Tabellenblatt1 wird aktiviert
    • 2. Die Wurzel der 5 Zahlenwerte aus Spalte A werden in einer MsgBox angezeigt

Beim Starten des Programms erhalten wir einen Laufzeitfehler, da der Wert in Zeile A3 negativ ist und wir keine Wurzel aus einer negativen Zahl ziehen können.

Sub Ausgangssituation()

 

'1

Dim i As Integer

Worksheets("Tabelle1").Activate

 

'2

For i = 1 To 5

'Wurzel des Zelleneintrages ziehen

MsgBox Sqr(Cells(i,1).Value)

Next

 

End Sub


Beispiel 1: Laufzeitfehler tritt auf Programm beenden:

'Eine Fehlermarke Setzen: On Error GoTo

'Sobald ein Laufzeitfehler auftritt, soll das Programm beendet werden

 

Sub Beispiel1()

 

Dim i As Integer

On Error GoTo FehlerVerarbeitung

 

Worksheets("Tabelle1").Activate

 

For i = 1 To 5

'Wurzel des Zelleneintrages ziehen

MsgBox Sqr(Cells(i,1).Value)

Next

 

Exit Sub

 

FehlerVerarbeitung:

'Was tun, wenn ein Laufzeitfehler auftritt?

MsgBox "Fehler aufgetreten, Programm beenden"

 

End Sub