2

我正在为 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
4

1 回答 1

3

这将采用 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
于 2013-09-02T17:30:08.787 回答