Consulta da Web do Excel 2010 com cadeia de conexão de uma célula

0

Como criar uma Consulta na Web no Excel 2010 com a cadeia de conexão (url) de uma célula? Por exemplo, o URL é como " http://www.xxx.com?date=20110716 ", em que preciso preencher esse URL em uma célula com a fórmula do Excel. Eu tenho tentado algum código VBA encontrado no Google, mas não consegui fazê-lo funcionar.


Meu script 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
  • Eu não quero que essa macro crie uma planilha toda vez ao executá-la. Eu quero definir o destination:=Range("Sheet1!A1") , mas parece estar errado sintaxe.
por Stan 16.07.2012 / 08:38

1 resposta

1

Se você não quiser continuar criando novas planilhas, retire o comando que faz isso!

ActiveWorkbook.Worksheets.Add

Você também está adicionando uma nova consulta toda vez que executa este código. Seria melhor atribuir um nome à consulta e depois simplesmente atualizá-lo toda vez que precisar alterar o URL.

A maneira mais fácil é inserir uma consulta na web manualmente no local desejado e atribuir um nome a ela. Vamos supor que você tenha chamado myquery .

Em vez de ActiveSheet.QueryTables.Add , algo ao longo destas linhas:

 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

Você não pode presumir que haverá apenas uma consulta em uma planilha, pois ela é adicionada com facilidade. Então você deve referenciar a consulta correta.

    
por 16.07.2012 / 19:40