如何使用VBA刷新Power Query?

mus*_*a00 1 excel vba powerquery

我在 Power Query 中创建了一个查询。我需要做的是在运行宏时刷新 PQ 并保存工作簿。我尝试使用各种宏来执行此操作,但它们都没有刷新查询。我在其他工作簿中使用这个宏 - 它打开给定的工作簿,“刷新”它(但实际上没有,因为它持续太短)并关闭。有趣的是,当我在 Excel 功能区上运行“全部刷新”时,PQ 会刷新(所有连接和查询)。然而,当我使用ActiveWorkbook.RefreshAllthen 时,它根本不会刷新 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
Run Code Online (Sandbox Code Playgroud)

CLR*_*CLR 6

我使用以下命令来刷新 PowerQuery 表:

ActiveWorkbook.Worksheets("<yourworksheetname>").ListObjects("<yourtablename>") _
    .QueryTable.Refresh BackgroundQuery:=False
Run Code Online (Sandbox Code Playgroud)