为什么VBA在查询刷新之前一直继续运行?

时间:2019-02-19 17:21:12

标签: excel vba powerquery

我有以下代码刷新1个或2个查询,具体取决于:

Sub RefreshPowerQueries()
Dim WB As Workbook
Dim startTime As Single

startTime = Timer

Set WB = ThisWorkbook
Application.Calculate
If WB.Names("One_Or_Two_Queries_Boolean").RefersToRange.Value2 Then
    WB.Connections("Query - 1").Refresh
    WB.Connections("Query - 2").Refresh
    shIndiv.UsedRange.Columns.AutoFit
    shIndiv.Columns("Z").Hidden = True
Else
    WB.Connections("Query - 3").Refresh
    shIndiv2.UsedRange.Columns.AutoFit
    shIndiv2.Columns("Z").Hidden = True
    shIndiv2.Select
End If

MsgBox "Load Time: " & Format((Timer - startTime) / 86400, "hh:mm:ss")

End Sub

当它经过语句的其他部分时,它将等待直到表完全刷新,然后正确地重新对齐所有内容,然后生成花费了多长时间。太好了,它运作完美(大约需要6秒钟)。

但是,当我遍历IF的True部分时,大约需要1秒钟才能运行,但查询并没有完成更新。然后,查询将在后台刷新,一段时间后,它们将刷新-在调整大小部分之后。

为什么会这样?有什么方法可以强制查询在继续之前完成刷新?

谢谢

0 个答案:

没有答案