2015-10-13 27 views
2

對於我的previous question,我試圖從Data> Connections中捕獲連接錯誤。覆蓋Excel中內置的錯誤消息

我添加了一個測試連接來檢查,看看我的代碼工作正常,但是,刷新連接時,內置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 
+0

如果你讀了你的前一個問題的答案好了,你會得到的回答你的當前問題。刪除'On Error GoTo 0'會掛鉤你想要添加自定義錯誤信息的處理程序。 –

+0

@Jelly即使在註釋On Error GoTo 0時,它仍會拋出上述內容。 – Sean

+0

您的自定義消息錯誤代碼? –

回答

0

無論出於何種原因,我可以'回答'但不評論 - 取決於您打開多少個網站,您可以投入計時器循環,基本上會暫停,直到您可以斷定您的網頁已加載 - if在分配的時間內,你不能跳轉到錯誤,如果有,你可以退出該循環。

這裏的否定實質上只是減慢你的運行時間,但你的時間循環不需要超過一秒或兩秒。

VBA Internet Explorer wait for web page to load

我一直在尋找一個更相關的答案,碰到這個傳來:

Wait until ActiveWorkbook.RefreshAll finishes - VBA