2010-08-09 15 views
5

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!

Antwort

21

Drücken Sie ALT + F11 aus Excel, um VBA-Editor zu erreichen.

Gehe zu Extras -> Optionen -> Registerkarte Allgemein.

den Fehler Trapping Set

http://i.msdn.microsoft.com/Aa155729.vba200111pa_f_image004(en-us,office.10).jpg

+0

ich, dass man sich daran erinnern, „auf nicht behandelte Fehler zu brechen“, nahm mich eine Weile, es herauszufinden. –

+0

Vielen Dank! Ich wusste, dass es etwas Lustiges war, das ich übersah. Das hat perfekt funktioniert! Vielen Dank :-D –

+0

Schöne Antwort. Bildschirmfoto ftw. –

Verwandte Themen