Excel 2010 Web 查询带有来自单元格的连接字符串

Excel 2010 Web 查询带有来自单元格的连接字符串

如何使用单元格中的连接字符串 (url) 在 Excel 2010 中创建 Web 查询?例如,url 类似于“ http://www.xxx.com?date=20110716”,我需要使用 Excel 公式在单元格中填充此 url。我一直在尝试在 Google 上找到的一些 VBA 代码,但无法使其工作。


我的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
  • 我不希望这个宏每次执行时都创建一个工作表。我想设置destination:=Range("Sheet1!A1"),但这似乎是错误的语法。

答案1

如果您不想继续创建新的工作表,请删除执行此操作的命令!

ActiveWorkbook.Worksheets.Add

每次运行此代码时,您都会添加一个新查询。最好为查询指定一个名称,然后在每次需要更改 URL 时只需更新它即可。

最简单的方法是将 Web 查询手动插入到所需位置并为其命名。假设您将其命名为myquery

而不是ActiveSheet.QueryTables.Add像这样:

 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

您不能假设电子表格中只有一个查询,因为它们很容易添加。因此您必须引用正确的查询。

相关内容