如何使用单元格中的连接字符串 (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
您不能假设电子表格中只有一个查询,因为它们很容易添加。因此您必须引用正确的查询。