Как получить данные из Интернета, используя значения ячейки, чтобы собрать URL для извлечения? Получение данных из Интернета с использованием ссылок на ячейки

1917
Levy Image

Как получить данные из Интернета, используя значения ячейки, чтобы собрать URL для извлечения?

How to get data from web using Cell values to assemble URL to pull from?

Как мне использовать ссылки на ячейки для создания URL, который Excel может использовать для получения данных из Интернета? В основном я пытаюсь использовать значения ячеек, чтобы собрать полный URL со строкой запроса, чтобы вернуть результат запроса в другую ячейку.

У меня есть рабочий лист с URL-адресами API в одном столбце и строками запроса в следующем столбце. Я хочу взять, скажем, ячейку $ B $ 2 (URL) и ячейку $ C $ 2 (строка запроса), чтобы получить результаты URL от = $ B $ 2 & $ C $ 2

Большинство результатов будут просто числовыми значениями и не должны интерпретироваться, в то время как другие результаты аналогичны результатам JSON и должны быть перемещены / сожжены в правильное положение до желаемого результата.

Get Data from web в Excel хорошо справляется с этой задачей, если я присваиваю ему URL-адрес изначально ... но ... проблема заключается в том, чтобы использовать эту функцию в Excel, а вместо этого просто собрать URL-адрес из ссылок на ячейки, а не вставлять URL изначально в том, чтобы получить данные из веб-формы.

Есть идеи? Спасибо

Редактировать:
я обратился к одному из моих старых профессоров, которые преподавали в Excel, он сказал, что не уверен, но предложил вариант VBA.

1

1 ответ на вопрос

1
Janaka Bandara

Насколько я понимаю, вам нужно будет создать таблицу запросов для каждой строки, поскольку URL-адрес данных для каждой строки будет разным / уникальным. В качестве альтернативы можно использовать одну таблицу запросов и выполнять итерацию по всем строкам, обновляя URL-адрес соединения таблицы на каждой итерации и извлекать извлеченные данные в соответствующую строку, используя фрагмент VBA, как показано ниже (отказ от ответственности: не проверял это ):

' assuming your data starts at row 2 i = 2 Do While Not IsEmpty(Sheet1.Cells(i, 2)) url = "TEXT;" & Sheet1.Cells(i, 2) & Sheet1.Cells(i, 3) With Sheet1.QueryTables If .Count < 1 Then .Add url, Sheet1.Range("Z1") Else .Item(1).Connection = url .Item(1).Refresh ' assuming column D would hold the results Sheet1.Cells(i, 4) = Sheet1.Range("Z1") ' do any further manipulations of the fetched Sheet1 End With i = i + 1 Loop