У меня не было большого опыта работы с VBA, но я иногда использую его на работе. В последнее время я столкнулся с проблемой, которая не должна произойти, и что ни мой босс, ни я сами не пойму.Ошибка обработки VBA в Excel
По существу, проблема заключается в том, что свойство Application
DisplayAlerts
установлено по умолчанию True
и по какой-либо причине изменить его нельзя. Возможно, это связано с тем, что когда я нахожу ошибку, она всегда отображает предупреждение об окончании | отладки | Справка и никогда не обращается к прикладной обработке ошибок.
Я запускаю 64-разрядный Office 2010 на 64-битной машине Windows 7. Однако я не считаю, что это проблема платформы, поскольку я тестировал несколько разных платформ, операционных систем и программных перестановок, и никакая другая машина не имеет этой ошибки; только моя.
Я создал образец кода в том случае, если кто-либо столкнулся с этим раньше или имеет какие-либо идеи. Единственное, о чем я могу думать, это то, что у меня есть что-то, установленное на моей машине, что вызывает это. Но после чистки программы и многих перезапусков я не собираюсь расшифровывать то, что может быть.
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
Ошибка выброшен на третьем перечислении for-loop
(как это необходимо). Тип ошибки не имеет значения, важно то, что я получаю ошибку и никогда не попадаю в обработчик ошибок.
Любые предложения или помощь по этому вопросу будут очень признательны.
Большое спасибо!
Я помню, что один, мне потребовалось некоторое время, чтобы понять это тоже. –
Большое спасибо! Я знал, что это было что-то смешное, что я не замечал. Это сработало отлично! Большое спасибо: -D –
Хороший ответ. скриншот ftw. –