【问题标题】:Is there a way to make VBA Power query refresh faster?有没有办法让 VBA Power 查询刷新更快?
【发布时间】:2020-06-02 16:44:16
【问题描述】:

我有这个宏可以成功打开工作簿并刷新其中的每个 Power Query 连接。如果我手动单击“全部刷新”,整个过程需要 3 - 5 分钟。但如果我运行宏,则最多需要一个小时才能完成该过程。

我曾尝试使用Application.ScreenUpdating = False,但没有任何影响。有什么方法可以加快刷新速度?

Dim fname As String
    Dim owb As Workbook
    Dim Cname As String
    Dim objConnection As WorkbookConnection, bBackground As Boolean
    fname = "PowerQuery04-CSVMultipleFileImport.xlsx"
    Set owb = Application.Workbooks.Open(fpath & "\" & fname)
        For Each objConnection In ActiveWorkbook.Connections
            If Left(objConnection.Name, 8) = "Query - " Then
            Cname = objConnection.Name
                With ActiveWorkbook.Connections(Cname).OLEDBConnection
                    .BackgroundQuery = False  'or true, up to you
                    .Refresh
                End With
            End If
        Next
    'owb.RefreshAll
    Application.Wait (Now + TimeValue("0:02:00"))
    Application.DisplayAlerts = False
    owb.Save
    owb.Close
    Application.DisplayAlerts = True

【问题讨论】:

  • .BackgroundQuery = True 怎么样?
  • 那也很慢!

标签: excel vba powerquery


【解决方案1】:

我怀疑如果您使用 Workbook.RefreshAll method 而不是循环查询,您将获得更好的性能。

ActiveWorkbook.RefreshAll

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2017-03-26
    • 1970-01-01
    • 2012-02-18
    • 2020-03-08
    相关资源
    最近更新 更多