在Excel 2007,2010和2013中刷新连接和数据透视表

时间:2014-09-18 15:17:37

标签: excel excel-vba excel-2007 excel-2010 excel-2013 vba

所以我在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年刷新连接的解决方案。感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。

发帖后,我质疑为什么我的联系是不同的类型。

事实证明,由于我的一些连接是从网络上的连接文件中提取的,因此它会将它们视为Office数据连接。

一旦我取消选中始终在网络上使用连接文件的选项,这会将类型更改为数据库查询,现在刷新脚本再次工作。