我有以下代码刷新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秒钟才能运行,但查询并没有完成更新。然后,查询将在后台刷新,一段时间后,它们将刷新-在调整大小部分之后。
为什么会这样?有什么方法可以强制查询在继续之前完成刷新?
谢谢