Um jetzt dahinter zu kommen, wo jetzt der Fehlr in Deinem Code liegt, braucht es sicher nicht nur den kompletten Code, sondern auch noch eine Beschreibung des gesamten Kontextes.
Das ist aber nicht der Kern: Du verwendest "On Error Resume Next". Gleichzeitig schreibst Du:
Warum es überhaupt aufgetreten ist, hab' ich zwar nicht verstanden, aber ich muss ja auch nicht alles wissen...
Diese Verbindung ist ein absolutes "no-no". "On Error Resume Next"
sollte darf man niemals verwenden, es sei denn, man weiss
sicher, was passiert und wie darauf zu reagieren ist. Alles andere ist programmiertechnisch "Russisches Roulette", wie Du ja selbst erlebt hast: Du verlierst komplett die Kontrolle.
Denkbar wäre beispielsweise folgendes Konstrukt:
On Error Goto NormalErrorHandler
... Code ...
'Jetzt wird es speziell:
On Error Goto IchBefuerchteFehler1024
... Code ...
'Schweiss abwisch' - es ist gut gegangen:
On Error Goto NormalErrorHandler
... weiter im Code ...
'Ende Gelaende:
Exit Sub
'Hier kommen die ErrorHandler:
NormalErrorHandler:
... "Normale" Fehlerbehandlung, normalerweise Abbruch der Routine ...
Exit Sub
IchBefuerchteFehler1024:
If Err = 1024 Then
...korrigiere die Situation - ueberpruefe das Resultat!!!
Resume Next '<- UND NUR SO !!!
Else
Goto NormalErrorhandler
End If
Exit Sub
Ich hoffe, das Grundprinzip konnte ich verständlich machen (und ganz so simpel ist es reell nicht zu kodieren!). Wenn es nicht verstanden wurde: Verwende prinzipiell nicht "Resume Next".
"Resume Next" ist vergleichbar mit folgender Situation: Du merkst bei Vollgas, dass es Dich aus der Kurve trägt. "Resume Next" heisst: Okay, ich habe es festgestellt, aber ich mache weiter so ...
Bernhard