Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 刷新Excel连接_Vba_Excel - Fatal编程技术网

Vba 刷新Excel连接

Vba 刷新Excel连接,vba,excel,Vba,Excel,我正在尝试遍历Excel工作簿中的每个连接,并分别刷新每个连接,并在每次刷新之间捕获任何错误消息。但是,我在尝试运行代码时收到“类型不匹配”错误: Private Sub btnRefreshConns_Click() Dim cn As WorkbookConnection Set cn = ActiveWorkbook.Connections.Count For Each cn In Workbook.Connections cn.Refresh Next End Sub 有人能帮

我正在尝试遍历Excel工作簿中的每个连接,并分别刷新每个连接,并在每次刷新之间捕获任何错误消息。但是,我在尝试运行代码时收到“类型不匹配”错误:

Private Sub btnRefreshConns_Click()
Dim cn As WorkbookConnection
Set cn = ActiveWorkbook.Connections.Count

For Each cn In Workbook.Connections

cn.Refresh

Next

End Sub
有人能帮我吗

Private Sub btnRefreshConns_Click()
Dim cn As WorkbookConnection
'Remove this line --> Set cn = ActiveWorkbook.Connections.Count

For Each cn In ActiveWorkbook.Connections

    cn.Refresh

Next

End Sub
我应该这样做。使用For Each,您不需要跟踪计数

注意:撇号在VB中引入注释,所以您可以尝试注释掉不符合要求的行,看看会发生什么


编辑:循环需要引用ActiveWorkbook。工作簿是一种类型,即ActiveWorkbook是什么类型的东西。ActiveWorkbook是一个对象,一个您可以操作的实际对象。

这是我之前的内容。但是,我收到一个“需要对象”错误;如果我删除了你建议的行,仍然可以这样做。刷新效果非常好,谢谢!但是,是否有方法捕获每个连接上可能发生的任何错误?是:on error goto语句。为了将来的读者,请您接受这个答案,并提出另一个问题,更详细地说明一旦发现错误,您希望做什么?和往常一样,如果您先尝试一下,并展示您尝试过的代码,您将在这里得到更好的答案:。在这里发布另一个问题的链接,我会看到它。这是我关于错误捕获的问题: