Ich habe nicht viel Erfahrung mit VBA, aber ich benutze es manchmal bei der Arbeit. In letzter Zeit bin ich auf ein Problem gestoßen, das nicht passieren sollte und das weder mein Chef noch ich selbst herausfinden können.VBA Fehlerbehandlung funktioniert nicht in Excel
Grundsätzlich ist das Problem, dass die Application
Eigenschaft DisplayAlerts
standardmäßig auf True
festgelegt ist und aus irgendeinem Grund nicht geändert werden kann. Möglicherweise ist das der Fall, wenn ich einen Fehler erhalte, wird immer die Warnung Ende | Debug | Hilfe angezeigt und trifft nie die angewandte Fehlerbehandlung.
Ich verwende 64-Bit-Office 2010 auf einem 64-Bit-Windows 7-Computer. Ich glaube jedoch nicht, dass es sich um ein Plattformproblem handelt, da ich auf mehreren verschiedenen Plattformen, Betriebssystemen und Software-Permutationen getestet habe und keine andere Maschine diesen Fehler aufweist. nur meiner.
Ich habe einen Beispielcode für den Fall erstellt, dass jemand schon einmal darauf gestoßen ist oder irgendwelche Ideen hat. Das einzige, was mir einfällt, ist, dass ich etwas auf meinem Rechner installiert habe, das das verursacht. Aber nach einer Programmspülung und vielen Neustarts bin ich nicht näher dran, was es sein könnte.
Public Sub TestErrorHandler()
' Suppress alerts
Application.DisplayAlerts = False
Dim strArray(1) As String
strArray(0) = "Hello"
strArray(1) = "World"
' Set up error handler
On Error GoTo ErrHandler
For i = 0 To 3
MsgBox strArray(i)
Next
' Strip the error handler
On Error GoTo 0
' Unsuppress alerts
Application.DisplayAlerts = True
Exit Sub
ErrHandler:
MsgBox "Error: " & Err.Description
Resume Next
End Sub
Der Fehler wird auf der dritten Aufzählung der for-loop
geworfen (wie es sein sollte). Der Typ des Fehlers ist irrelevant. Was relevant ist, ist, dass ich den Fehler erhalte und niemals den Fehlerhandler triff.
Irgendwelche Vorschläge oder Hilfe zu diesem würde sehr geschätzt werden.
Vielen Dank!
ich, dass man sich daran erinnern, „auf nicht behandelte Fehler zu brechen“, nahm mich eine Weile, es herauszufinden. –
Vielen Dank! Ich wusste, dass es etwas Lustiges war, das ich übersah. Das hat perfekt funktioniert! Vielen Dank :-D –
Schöne Antwort. Bildschirmfoto ftw. –