使用来自单元格的值创建动态URL

时间:2013-09-02 17:07:48

标签: url excel-vba excel-web-query vba excel

我正在运行Excel工作表的Web查询,并且能够正确地提取数据但是我想引用可以在工作表中更改的单元格。

实施例。我想让F引用一个单元格,这样我就可以轻松地更改请求而无需更改代码。我一直在尝试使用范围功能。

Sub URL_Get_Query()

With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;http://finance.yahoo.com/q/is?s=F+Income+Statement&annual", _
    Destination:=Range("a1"))

    .BackgroundQuery = True
    .TablesOnlyFromHTML = True
    .Refresh BackgroundQuery:=False
    .SaveData = True
End With
End Sub

1 个答案:

答案 0 :(得分:2)

这将采用Sheet1的单元格A1中的任何符号,并在查询中使用它。结果将写入Sheet2上的单元格A1。如果需要,您可以修改它以使用不同的范围并写入不同的工作表。

Sub UseDynamicURL()
    Dim wb As Workbook
    Dim src As Worksheet
    Dim tgt As Worksheet

    Set wb = ThisWorkbook
    Set src = wb.Sheets("Sheet1")
    Set tgt = wb.Sheets("Sheet2")

    Dim url As String
    Dim symbol As String

    symbol = src.Range("A1")
    url = "URL;http://finance.yahoo.com/q/is?s="
    url = url & symbol & "+Income+Statement&annual"

    With tgt.QueryTables.Add(Connection:= _
        url, _
        Destination:=tgt.Range("A1"))

        .BackgroundQuery = True
        .TablesOnlyFromHTML = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With
End Sub