覆盖Excel内置的错误消息

时间:2015-10-13 08:22:02

标签: excel vba excel-vba

关于我的previous question,我试图从Data>中捕获连接错误连接。

我添加了一个测试连接以检查我的代码是否正常工作,但是,刷新连接时,会出现一个内置的Excel对话框:

enter image description here

无论如何都要使用自定义MsgBox覆盖此对话框,如下所示:

Dim cn As WorkbookConnection
On Error GoTo ErrorHandler:
For Each cn In ActiveWorkbook.Connections
    cn.Refresh
Next
'On Error GoTo 0
Exit Sub
ErrorHandler:
MsgBox "A connection could not be reached" & ": " & cn.name & ": " & cn.Description

最新编辑:这是我的代码目前的样子 -

Dim cn As WorkbookConnection
Application.DisplayAlerts = False

For Each cn In ActiveWorkbook.Connections
    cn.Refresh
    On Error GoTo ErrorHandler:
Next
'On Error GoTo 0
Exit Sub

Application.DisplayAlerts = True

ErrorHandler:
MsgBox "A connection could not be reached" & ": " & cn.name & ": " & cn.Description

1 个答案:

答案 0 :(得分:0)

无论出于何种原因,我都可以回答'但不是评论 - 取决于您打开多少个网站,您可能会抛出一个基本上暂停的计时器循环,直到您可以断定您的网页已经加载为止 - 如果在规定的时间内它没有你可以跳转到错误,如果有,你可以退出该循环。

这里的否定基本上只会减慢你的运行时间,但你的时间循环不需要超过一两秒。

VBA Internet Explorer wait for web page to load

我正在寻找一个更相关的答案,并且发现了这个:

Wait until ActiveWorkbook.RefreshAll finishes - VBA