Excel VBA - mehrfache Verwendung "On Error GoTo" - Laufzeitfehler 9 beim 2.ten Durchlauf
Hallo zusammen,
ich habe ein Problem mit der Fehlerbehandlung in Excel.
Funktion Makro:
- Prüfung eines Tabellenblattes ob vorhanden --> Tabellenblattes Löschen
- Prüfung einer Zeile ob vorhanden --> Zeile Löschen
Problem:
Sobald die Fehlerroutine einmal abgearbeitet wurde und ich ein 2.tes Mal den Laufzeitfehler 9 erhalte (Zeile oder Tabellenblatt nicht vorhandnen) wird die Fehlerbehandlung nicht mehr ausgeführt.
Leider weiß ich nicht warum.
Versuch 1:
Versuch 2:
Vielen Dank schonmal für die Unterstützung.
Feder
ich habe ein Problem mit der Fehlerbehandlung in Excel.
Funktion Makro:
- Prüfung eines Tabellenblattes ob vorhanden --> Tabellenblattes Löschen
- Prüfung einer Zeile ob vorhanden --> Zeile Löschen
Problem:
Sobald die Fehlerroutine einmal abgearbeitet wurde und ich ein 2.tes Mal den Laufzeitfehler 9 erhalte (Zeile oder Tabellenblatt nicht vorhandnen) wird die Fehlerbehandlung nicht mehr ausgeführt.
Leider weiß ich nicht warum.
Versuch 1:
For iFzg = 0 To iNewFZG
If FZG(iFzg, 5) = "TRUE" Then
'Lösche Worksheet
Fahrzeug = FZG(iFzg, 4)
On Error GoTo Error1
Worksheets(Fahrzeug).Delete
GoTo delRow
Error1: MsgBox ("Tabellenblatt " & Fahrzeug & " nicht gefunden!"), vbCritical, "Fehler beim Löschen"
On Error GoTo 0
delRow: 'Lösche Zeile in Fahrzeugübersicht
iRow = Cells.Find(What:=Fahrzeug).row
On Error GoTo Error2
Worksheets("Fahrzeugübersicht").Rows(iRow & ":" & iRow).Delete
GoTo Ende
Error2: MsgBox ("Zeilefür Fahrzeug " & Fahrzeug & " nicht mehr vorhanden!"), vbCritical, "Fehler beim Löschen"
On Error GoTo 0
Ende: End If
Next
Versuch 2:
For iFzg = 0 To iNewFZG
If FZG(iFzg, 5) = "TRUE" Then
'Lösche Worksheet
Fahrzeug = FZG(iFzg, 4)
On Error GoTo Error1
Worksheets(Fahrzeug).Delete
'Lösche Zeile in Fahrzeugübersicht
delRow: iRow = Cells.Find(What:=Fahrzeug).row
On Error GoTo Error2
Worksheets("Fahrzeugübersicht").Rows(iRow & ":" & iRow).Delete
GoTo Ende
'Fehlerbehandlung
Error1: MsgBox ("Tabellenblatt " & Fahrzeug & " nicht gefunden!"), vbCritical, "Fehler beim Löschen"
On Error GoTo 0
Err.Clear
GoTo delRow
Error2: MsgBox ("Zeilefür Fahrzeug " & Fahrzeug & " nicht mehr vorhanden!"), vbCritical, "Fehler beim Löschen"
On Error GoTo 0
Err.Clear
GoTo Ende
Ende: End If
Next
Vielen Dank schonmal für die Unterstützung.
Feder
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 277399
Url: https://administrator.de/contentid/277399
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
2 Kommentare
Neuester Kommentar
Moin,
lass das ganze Goto Gedöhns das ist ja grausam, mach es so:
Gruß jodel32
lass das ganze Goto Gedöhns das ist ja grausam, mach es so:
On Error Resume Next
For iFzg = 0 To iNewFZG
If FZG(iFzg, 5) = "TRUE" Then
Fahrzeug = FZG(iFzg, 4)
Worksheets(Fahrzeug).Delete
If Err.Number <> 0 Then
MsgBox ("Tabellenblatt " & Fahrzeug & " nicht gefunden!"), vbCritical, "Fehler beim Löschen"
Err.Clear
End If
Set r = Cells.Find(What:=Fahrzeug)
If Not r Is Nothing Then
Worksheets("Fahrzeugübersicht").Rows(r.Row & ":" & r.Row).Delete
End If
End If
Next