gpt4 book ai didi

excel - 捕获连接错误

转载 作者:行者123 更新时间:2023-12-03 07:47:42 25 4
gpt4 key购买 nike

my Connections query ,我现在想捕获任何无法到达的连接并抛出错误消息以说明无法到达相关连接。

这是我到目前为止的代码,但是,我不确定它是否捕获了任何错误:

Private Sub btnRefreshConns_Click()

On Error GoTo ErrorHandler
Dim cn As WorkbookConnection

For Each cn In ActiveWorkbook.Connections
cn.Refresh
Next

Exit Sub

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

End Sub

有人可以帮助我或让我知道此代码是否有效吗?

最佳答案

是的,该示例将捕获连接错误。更改MsgBox对此进行修复以修复报告:

MsgBox "A connection could not be reached: " & Err.Number & ": " & Err.Description
Err有关于最新错误的信息。

只有一个问题:所有错误都会被捕获,而不仅仅是连接错误。这就是为什么我建议不要提及 cn。在您的错误处理程序中:如果发生不相关的错误(例如,内存不足 - 这可能发生!),您不知道它将处于什么状态。更好的方法是只包装感兴趣的代码。在你的 For 循环内:
    On Error GoTo ErrorHandler
cn.Refresh
On Error GoTo 0 ' Reset default error handling

编辑 : On Error GoTo 0解开你的 ErrorHandler并返回默认的错误处理模式,即显示错误对话框。 0只是VBA为此目的而编程识别的一个魔数(Magic Number)。在 Chip Pearson's page on the subject 上查看更多详细信息和说明,这是我个人的首选引用。

我没用过 On Error GoTo -1 , 但是 this answer表明我没有遗漏任何东西:)。它显然是用来在 ErrorHandler 之后继续执行正常代码的。 ,但我一直用 Resume为此,没有问题。

警告:永远永远永远不要忘记 Exit Sub之前 ErrorHandler .我做过一次,陷入了一个无限错误循环,我只能通过杀死 Excel 来逃脱。 Resume如果在实际未处理错误并且该错误被抛出到具有 Resume 的错误处理程序时运行它,则会导致错误。 ... 是的。丑陋的。

关于excel - 捕获连接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32437033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com