Refresh Excel connections

2019-07-14 06:03发布

I'm trying to loop through each connection in my Excel workbook and refresh each one individually and capture any error messages in between each refresh. However, I receive a 'Type-Mismatch' error when trying to run the code:

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

For Each cn In Workbook.Connections

cn.Refresh

Next

End Sub

Could someone please assist me?

1条回答
走好不送
2楼-- · 2019-07-14 07:01
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

should do it. With For Each, you don't need to keep track of the count.

(Note: apostrophes ' introduce comments in VB, so you can try commenting out offending lines to see what happens.)

edit: The loop needs to refer to ActiveWorkbook. Workbook is a type, i.e., what kind of thing ActiveWorkbook is. ActiveWorkbook is an object, an actual thing you can manipulate.

查看更多
登录 后发表回答