繁体   English   中英

如何使用 VBA 刷新 Power Query?

[英]How to refresh Power Query using VBA?

我在 Power Query 中创建了一个查询。 我需要做的是刷新 PQ 并在运行宏时保存工作簿。 我尝试使用各种宏来做到这一点,但它们都没有刷新查询。 我在其他工作簿中使用此宏 - 它在给定工作簿的情况下打开,“刷新”它(但实际上并没有,因为它持续时间太短)并关闭。 有趣的是,当我在 Excel 功能区上运行“全部刷新”时,PQ 会刷新(所有连接和查询)。 但是,当我使用ActiveWorkbook.RefreshAll时,它根本不会刷新 PQ。

下面是我的宏,有很多刷新PQ的方法:

Sub RefreshQuery()

    Application.DisplayAlerts = False
    
    File = "C:\Users\User1\Desktop\MyFile.xlsx"
    Set MyWorkBook = Workbooks.Open(File)
   
    ActiveWorkbook.Queries.FastCombine = True 'ignores privacy levels on all computers
    
    'Refresh option #1
    ActiveWorkbook.RefreshAll
    
    'Refresh option #2
    For Each cn In ActiveWorkbook.Connections
        cn.Refresh
    Next cn

    'Refresh option #3
    ActiveWorkbook.Connections("GetStatData").Refresh

    'Refresh option #4
    ActiveWorkbook.Connections("Query - GetStatData").Refresh

    'Refresh option #5
    ActiveWorkbook.Query("GetStatData").Refresh

    ActiveWorkbook.Save
    Application.Wait (Now + TimeValue("00:00:03"))   
    ActiveWindow.Close

End Sub

我已使用以下内容刷新 PowerQuery 表:

ActiveWorkbook.Worksheets("<yourworksheetname>").ListObjects("<yourtablename>") _
    .QueryTable.Refresh BackgroundQuery:=False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM