2015-09-07 81 views
2

我试图循环遍历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 

可能有人请帮助我?

回答

4
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中介绍的意见,所以你可以尝试注释掉得罪线,看看会发生什么。)

编辑:循环需要参照ActiveWorkbookWorkbook是一种类型,即ActiveWorkbook是什么类型。 ActiveWorkbook是一个对象,您可以操作的实际事物。

+0

这是我以前的。但是,我收到了“Object Required”错误;如果我删除了你建议的行,仍然这样做。 – Sean

+0

刷新完美,谢谢!但是,是否有方法可以捕获每个连接上可能发生的任何错误? – Sean

+2

是的:错误goto'声明。为了未来的读者,请您接受这个答案,并提出另一个问题,详细说明一旦您发现错误后您想要做什么?与往常一样,如果您先尝试一下并显示您尝试过的代码,您会在这里得到更好的答案:)。在这里发布一个链接到其他问题,我会看到它。 – cxw