【问题标题】:VBA: Refresh Power query and subsequently update pivot tablesVBA:刷新电源查询并随后更新数据透视表
【发布时间】:2021-12-02 03:07:16
【问题描述】:

我有一个 Excel 文件,其中包含一个工作表“DATA”,其中包含使用 Power Query 提取的数据,以及其他三个包含数据透视表的工作表,这些数据透视表都依赖于“DATA”中的这些提取数据。

我想创建一个 VBA,它 (1) 在打开 Excel 文件时自动刷新/重新运行上面指定的 Power Query,并且 (2) 随后更新三个数据透视表以镜像更新的数据。

我做了几次尝试并在stackoverflow上寻找类似的问题,但没有成功: 虽然我可以通过刷新连接来刷新数据,但数据透视表并未相应更新。

其中一个 VBA 代码没有产生预期的结果(即随后更新数据透视表)是:

Sub test()

Dim ws As Worksheet
Dim pt As PivotTable

'ActiveWorkbook.RefreshAll 'make sure the refresh in bg property is false for all connections
 ActiveWorkbook.Connections("Name of Query").Refresh
For Each ws In ActiveWorkbook.Worksheets
    For Each pt In ws.PivotTables
        pt.RefreshTable
    Next pt
Next ws

End Sub

谢谢!

【问题讨论】:

  • “没有产生预期的结果”:你的意思是什么:你得到一个错误,没有发生任何事情,发生了意外的事情吗? (idownvotedbecau.se/itsnotworking) 不知道什么是行不通的,很难帮助你。
  • 感谢您的评论,艾克。我将修改我的问题以澄清我所期望的结果的意思。

标签: vba pivot-table powerquery


【解决方案1】:

您必须确保“后台刷新”设置为 false:

    Sub Refresh_All_Data_Connections()
        Dim objConnection, bBackground
            For Each objConnection In ThisWorkbook.Connections
                'Get current background-refresh value
                bBackground = objConnection.OLEDBConnection.BackgroundQuery
        
                'Temporarily disable background-refresh
                objConnection.OLEDBConnection.BackgroundQuery = False
        
                'Refresh this connection
                objConnection.refresh
        
                'Set background-refresh value back to original value
                objConnection.OLEDBConnection.BackgroundQuery = bBackground
            Next
    ThisWorkbook.RefreshAll
    End Sub

更新:添加了 refreshall 以刷新所有数据透视表。 如果您只想刷新特定查询(假设设置了 sh),请重新阅读您的问题:

    sh.ListObjects("Name of Table").QueryTable.refresh BackgroundQuery:=False
    ThisWorkbook.RefreshAll

【讨论】:

  • 嗨塞西。感谢您提供答案!此代码是否足以更新数据透视表,或者我必须将其附加到我上面指定的代码中。我对 VBA 很陌生,所以我的问题的答案对你来说似乎微不足道,我很抱歉。
猜你喜欢
  • 2021-10-25
  • 2014-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
  • 2021-04-12
  • 2015-02-07
  • 1970-01-01
相关资源
最近更新 更多