Como obter dados da web usando valores de célula para montar a URL a partir de? Obtendo dados da web usando referências de célula

1

Como obter dados da web usando valores de células para montar a URL a partir?

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

Eu tenho uma planilha com URLs de API em uma coluna e strings de consulta na próxima coluna. Quero levar o celular $ B $ 2 (URL) e o celular $ 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 precisa ser interpretada, enquanto outros resultados são semelhantes aos resultados do JSON e precisam ser navegados / queimados até a posição correta até o resultado desejado.

Obter dados da Web no Excel faz um bom trabalho se eu der a ela a URL nativamente ... mas ... o problema é tentar usar essa funcionalidade no Excel, mas apenas montá-la a partir de referências de célula de colocar o URL nativamente em obter dados do formulário da web.

Alguma ideia? Obrigado

Editar:
Eu estendi a mão para um dos meus antigos professores que ensinavam excel, ele disse que não tinha certeza, mas sugeriu que um script de VBA poderia ser uma opção.

    
por Levy Image 03.01.2018 / 21:29

1 resposta

1

Tanto quanto eu entendo, você terá que criar uma tabela de consulta para cada linha, porque o URL de dados para cada linha será diferente / exclusivo. 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 do VBA como o seguinte (isenção de responsabilidade: não testamos 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
    
por 23.01.2018 / 03:35