Как создать веб-запрос в Excel 2010 со строкой подключения (URL) из ячейки? Например, URL-адрес похож на « http://www.xxx.com?date=20110716 », где мне нужно заполнить этот URL-адрес в ячейке с помощью формулы Excel. Я пробовал какой-то код VBA, найденный в Google, но не смог заставить его работать.


Мой скрипт VBA:

Sub query()
Dim row As Integer
Dim val As String

row = 1
val = Cells(row, 1).Value
 ActiveWorkbook.Worksheets.Add
 With ActiveSheet.QueryTables.Add(Connection:= "URL;" & val, Destination:=Range("$A$1"))
        End With

End Sub
  • Я не хочу, чтобы этот макрос создавал рабочий лист каждый раз при его выполнении. Я хочу установить destination:=Range("Sheet1!A1") , но, похоже, синтаксис неправильный.

1 ответ1

1

Если вы не хотите продолжать создавать новые рабочие листы, выньте команду, которая это делает!

ActiveWorkbook.Worksheets.Add

Вы также добавляете новый запрос каждый раз, когда запускаете этот код. Было бы лучше назначить имя запросу, а затем просто обновлять его каждый раз, когда вам нужно изменить URL-адрес.

Самый простой способ - вставить веб-запрос вручную в нужное место и дать ему имя. Предположим, вы назвали это myquery .

Вместо ActiveSheet.QueryTables.Add что-то вроде этого:

 Dim mytable As QueryTable

 ' If you dont set the name, it will take ?date=20110716 as a
 ' name when it is added for the first time
 Set mytable = ActiveSheet.QueryTables("myquery")

 ' Update the connections URL
 mytable.Connection = "URL;" & ActiveSheet.Cells(1, 1).Text
 ' Update the request - it will return the new data to the spreadsheet
 mytable.Refresh

Вы не можете предполагать, что в таблице будет только один запрос, так как они так легко добавляются. Таким образом, вы должны ссылаться на правильный запрос.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .