【问题标题】:Just want to refresh pivot tables without refreshing queries只想刷新数据透视表而不刷新查询
【发布时间】:2021-05-07 10:49:37
【问题描述】:

我正在尝试编写一个 vba,只是为了刷新本地数据透视表。由于数据透视表从链接到密码锁定的 Excel 文件的电源查询中获取数据。这几天,我设法写了一个vba来打开外部的excel文件来刷新我的查询。

刷新后,我的子程序会再次关闭excel文件,这样我团队的其他人就可以在我不保留文件的情况下访问它。然后,我想刷新所有链接到查询的数据透视表。由于它链接到密码锁定文件,我不想再次刷新该查询。在您的一项 RefreshQueries 建议中陈述了这样的代码:

Sub RefreshQueries()

    Dim ws As Worksheet
    Dim qt As QueryTable
    
    For Each ws In ThisWorkbook.Worksheets
        For Each qt In ws.QueryTables
            qt.Refresh
        Next qt
    Next ws
    
End Sub

您提到我可以编写一个类似的子例程来单独更新数据透视表。请告知其他子程序应该如何编写。

谢谢!

【问题讨论】:

    标签: vba


    【解决方案1】:

    您可以使用以下子例程。它遍历工作簿中的所有工作表,然后刷新工作表中的每个数据透视表:

    Sub RefreshPivotTables()
        Dim ws As Worksheet
        Dim pt As PivotTable
        
        For Each ws In ThisWorkbook.Worksheets
            For Each pt In ws.PivotTables
                pt.PivotCache.Refresh
            Next pt
        Next ws
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2016-09-07
      • 2016-01-11
      • 2021-10-25
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2018-12-30
      • 2021-04-12
      相关资源
      最近更新 更多