Como obter dados da web usando valores de célula para montar o URL de onde extrair? Obtendo dados da web usando referências de células

Como obter dados da web usando valores de célula para montar o URL de onde extrair? Obtendo dados da web usando referências de células

Como obter dados da web usando valores de célula para montar o URL de onde extrair?

Como obter dados da web usando valores de célula para montar o URL de onde extrair?

Como faço para usar referências de células para montar uma URL que o Excel possa usar para obter dados da web? Basicamente, estou tentando usar valores de células para montar uma URL completa com string de consulta para retornar o resultado da consulta em outra célula.

Eu tenho uma planilha com URLs de API em uma coluna e strings de consulta na próxima coluna. Quero pegar a célula $B$2 (URL) e a célula $C$2 (string de consulta) para obter resultados de URL de =$B$2&$C$2

A maioria dos resultados seria apenas um valor numérico e não precisaria ser interpretado, enquanto outros resultados são semelhantes aos resultados JSON e precisam ser navegados/gravados até a posição correta para o resultado desejado.

Obter dados da web no Excel faz um bom trabalho se eu fornecer o URL nativamente ... mas ... o problema é tentar usar essa funcionalidade no Excel, mas apenas fazer com que ele monte o URL a partir de referências de células em vez de colocá-lo o URL nativamente que obtém dados do formulário da web.

Alguma ideia? Obrigado

Editar:
entrei em contato com um dos meus antigos professores que ensinava Excel, ele disse que não tinha certeza, mas sugeriu que um script VBA poderia ser uma opção.

Responder1

Pelo que entendi, você terá que criar uma tabela de consulta para cada linha, porque o URL de dados para cada linha será diferente/único. Como alternativa, você pode usar uma única tabela de consulta e iterar em todas as linhas, atualizando o URL de conexão da tabela em cada iteração e recuperando os dados buscados na linha apropriada, usando um snippet VBA como o seguinte (isenção de responsabilidade: não testei isso ):

' 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

informação relacionada