Вы записали макрос, пока лист 6 был активен, но теперь пытаетесь запустить его на другом листе.Чтобы запустить макрос для текущего активного листа, просто измените код следующим образом:
Sub Macro3()
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://..." _
, Destination:=ActiveSheet.Range("$G$23"))
...
End With
End Sub
Редактировать: (в ответ накомментарий):
Мне нужно иметь возможность вставить результаты запроса на другой лист, а не на активный, так как макрос можно запускать в любое время и каждый раз вставлять в одно и то же место.,Возможно, есть способ изменить ваш активный лист с помощью кода?
Ошибка возникает, когда два листа различаются, поэтому, если вы хотите, чтобы магия произошла на конкретном листе, вы должны указать этот листвместо использования ActiveSheet
.Следующий код всегда помещает QueryTable на Sheet6:
Sub Macro3()
With Sheet6.QueryTables.Add(Connection:= _
"URL;http://..." _
, Destination:=Sheet6.Range("$G$23"))
...
End With
End Sub