mus*_*a00 1 excel vba powerquery
我在 Power Query 中创建了一个查询。我需要做的是在运行宏时刷新 PQ 并保存工作簿。我尝试使用各种宏来执行此操作,但它们都没有刷新查询。我在其他工作簿中使用这个宏 - 它打开给定的工作簿,“刷新”它(但实际上没有,因为它持续太短)并关闭。有趣的是,当我在 Excel 功能区上运行“全部刷新”时,PQ 会刷新(所有连接和查询)。然而,当我使用ActiveWorkbook.RefreshAll
then 时,它根本不会刷新 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)
我使用以下命令来刷新 PowerQuery 表:
ActiveWorkbook.Worksheets("<yourworksheetname>").ListObjects("<yourtablename>") _
.QueryTable.Refresh BackgroundQuery:=False
Run Code Online (Sandbox Code Playgroud)