所以我在Excel 2007中运行这个VBA代码没有任何问题:
Sub Button_Click()
For Each objConnection In ThisWorkbook.Connections
objConnection.Refresh
Next
Dim Sheet As Worksheet, Pivot As PivotTable
For Each Sheet In ThisWorkbook.Worksheets
For Each Pivot In Sheet.PivotTables
Pivot.RefreshTable
Pivot.Update
Next
Next
MsgBox "Finished refreshing all data connections"
End Sub
使用我的工作簿的一些人在Excel 2007上,有些人在Excel 2013上。
Excel 2013上的用户遇到以下错误:
Run-Time error "-2147417848 (80010108)":
Method "Refresh" of object "WorkbookConnection" failed
我已尝试将objConnection.Refresh
替换为ThisWorkbook.RefreshAll
行,但导致Excel 2013每次运行都会崩溃而没有错误。
所有连接都未选中Enable Background Refresh
,连接类型为Office数据连接和数据库查询。
我似乎找不到能够在2010年或2013年刷新连接的解决方案。感谢任何帮助,谢谢!
答案 0 :(得分:0)
我已经解决了这个问题。
发帖后,我质疑为什么我的联系是不同的类型。
事实证明,由于我的一些连接是从网络上的连接文件中提取的,因此它会将它们视为Office数据连接。
一旦我取消选中始终在网络上使用连接文件的选项,这会将类型更改为数据库查询,现在刷新脚本再次工作。