GRUNDLAGENKURSE | DIE WICHTIGSTEN BEFEHLE
​#22 Laufzeitfehler abfangen
Excel VBA Befehle Folge 22: On Error GoTo - Laufzeitfehler abfangen
Inhalt dieser Folge:
-
Wie kann ich auf Laufzeitfehler reagieren?
-
Porgramm beenden, wenn ein Laufzeitfehler auftaucht
-
Fehlerzeile überspringen, wenn ein Laufzeitfehler auftaucht
-
Wie erstelle ich eine individuelle Fehlerverarbeitung mit Select Case?
Ausgangssituation
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
​
Beispiel 2: Laufzeitfehler tritt auf - Fehlerzeile überspringen
'Eine Fehlermarke Setzen: On Error GoTo
'Sobald ein Laufzeitfehler auftritt, soll der Fehler übersprungen werden
Sub Beispiel2()
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:
'Fehlerzeile überspringen
MsgBox "Fehler aufgetreten: Zeile mit Fehler überspringen"
Resume Next
End Sub
​
Beispiel 3: Laufzeitfehler tritt auf - Individuell entscheiden, was passieren soll
'Eine Fehlermarke Setzen: On Error GoTo
'Sobald ein Laufzeitfehler auftritt, soll individuell entschieden werden, was passiert
Sub Beispiel3()
Dim i As Integer
Dim Antwort as String
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:
'Wählen, ob ein Fehler übersprungen wird oder nicht
Antwort = MsgBox("Fehler überspringen?", vbYesNo)
If antwort = vbYes Then Resume Next
End Sub
​
Beispiel 4: Bestimmte Laufzeitfehler automatisch überspringen - mit Select Case
'Eine Fehlermarke Setzen: On Error GoTo
'Es wird vorab festgelegt, was bei unterschiedlichen Laufzeitfehlern passiert, mit Hilfe einer Select Case - Anweisung
Sub Beispiel4()
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 eine Zeile einen Laufzeitfehler enthält?
Select Case Err.Number
Case 5
'Ungültiger Prozeduraufruf oder ungültiges Argument
Resume Next
Case 9
'Außerhalb des gültigen Bereichs
Exit Sub
Case Else
'Es liegt ein neuer Fehler vor
MsgBox "Neuer Fehler: " & vbCrLf & Err.Number & _
vbCrLf & Err.Description
Exit Sub
End Select
End Sub
​
Alle Folgen der VideoReihe auf einen Blick
​Folge 01 Arbeitsmappen und Tabellenblätter ansprechen, sortieren, ...
Folge 02 Zellen ansprechen
Folge 03 Meldeboxen, MsgBox (PopUpFenster)
Folge 04 Schrifteinstellungen (Fett, Kursiv, Schriftart, Schriftfarbe, Schriftgröße, ...)
Folge 05 Variablen & Datentypen in VBA
Folge 06 Arrays / Datenfelder in VBA
Folge 07 For Next - Schleifen in VBA
Folge 08 Dynamische Arrays
Folge 09 Rechenoperationen
Folge 10 Vergleichsoperatoren
Folge 11 Logische Operatoren
Folge 12 SuchFunktion (Einträge & Begriffe in Zellen suchen)
Folge 13 If Then Else - Verzweigungen in VBA
Folge 14 Do While Loop - Schleifen in VBA
Folge 15 Endlosschleifen verhindern
Folge 16 Die SortierFunktion (sortieren, nach mehreren Kriterien)
Folge 17 Select Case - Verzweigungen in VBA
Folge 18 InputBox (gestalten und Eingaben verwenden)
Folge 19 For Each - Schleifen in VBA
Folge 20 Borders-Eigenschaften (Dynamisches Tabellendesign erstellen)
Folge 21 Laufzeitfehler & Syntaxfehler - finden und beheben
Folge 22 On Error GoTo - Laufzeitfehler abfangen
Folge 23 Alle Farben in VBA nutzen (ColorIndex, vb Color, RGB)
Folge 24 Zeichen ersetzen mit der REPLACE Funktion
Folge 25 Zeichen trennen mit der SPLIT Funktion
Folge 26 Zeichen verbinden mit der JOIN Funktion
Folge 27 Auszug aus einer Zeichenkette - LEFT, RIGHT, MID Funktion
Folge 28 Zeichenketten vergleichen mit UCase & LCase
Folge 29 Arbeitsmappen Ereignisse (Open, BeforeClose, BeforeSave)
Folge 30 Tabellenblatt Ereignisse (Change, BeforeDoubleClick)
Folge 31 Zeilen und Spalten fixieren (FreezePanes)