【发布时间】:2010-08-09 14:00:49
【问题描述】:
我没有太多使用 VBA 的经验,但我有时会在工作中使用它。最近遇到了一个不该发生的问题,老板和我自己都想不通。
基本上,问题在于Application 属性DisplayAlerts 默认设置为True,并且由于某种原因无法更改。可能相关的是,当我遇到错误时,它总是显示 End|Debug|Help 警报并且从不点击应用的错误处理。
我在 64 位 Windows 7 机器上运行 64 位 Office 2010。但是,我认为这不是平台问题,因为我已经在多个不同的平台、操作系统和软件排列上进行了测试,并且没有其他机器出现此错误;只是我的。
我已经创建了一些示例代码,以防有人遇到过这个问题或有任何想法。我唯一能想到的是,我的机器上安装了一些导致这种情况的东西。但是在程序清除和多次重新启动之后,我并没有更接近破译它可能是什么。
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 的第三个枚举中抛出错误(应该如此)。错误的类型无关紧要,重要的是我得到了错误并且从未点击错误处理程序。
对此的任何建议或帮助将不胜感激。
非常感谢!
【问题讨论】: