1 вариант решения: отключить фоновое обновление подключения
2 вариант использовать модуль класса
добавить модуль класса Class1 с кодом
[vba]Код
Option Explicit
Public Refreshed As Boolean
Private WithEvents qt As Excel.QueryTable
Public Property Set QryTbl(ByVal QryTbl As QueryTable): Set qt = QryTbl:
End Property
Private Sub qt_BeforeRefresh(Cancel As Boolean)
Refreshed = False
End Sub
Private Sub qt_AfterRefresh(ByVal Success As Boolean)
Refreshed = True
End Sub
[/vba]
[vba]Код
ActiveWorkbook.RefreshAll
[/vba]
заменить на
[vba]Код
Dim QtClass As Class1: Set QtClass = New Class1
Set QtClass.QryTbl = Sheets("data").QueryTables("market_1")
Sheets("data").QueryTables("market_1").Refresh
Do Until QtClass.Refreshed: DoEvents: Loop
[/vba]