1

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

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

Как мне использовать ссылки на ячейки для создания 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

Насколько я понимаю, вам нужно будет создать таблицу запросов для каждой строки, поскольку 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

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