Веб-запит Excel 2010 із рядком з'єднання з комірки


0

Як створити веб-запит у 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
Вивчіть C # та створіть бібліотеку Com Addin.
Джеймс Мерц

Покажіть нам код VBA, я, можливо, зможу його дати. Як правило, я погоджуюся з @KronoS і буду це робити у додатку C # VSTO.
Джеремі Томпсон

@JeremyThompson, я щойно додав свій код VBA, будь ласка, подивіться.
Стен

Відповіді:


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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.