У меня следующий код, обновляющий 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
Когда он проходит через Else часть оператора, он ждет, пока таблица не будет полностью обновлена, а затем корректно выравниваетвсе, а затем генерирует, сколько времени это заняло.Отлично, работает отлично (и занимает ~ 6 секунд).
Однако, когда я прохожу через часть True IF, для запуска требуется около 1 секунды, но запросы не обновляются.Затем запросы обновляются в фоновом режиме, а через некоторое время они обновляются - после завершения изменения размера.
Почему это происходит?Есть ли способ заставить запросы завершить обновление, прежде чем продолжить?
Спасибо