Webquery在新的Excel工作簿应用程序中

时间:2015-02-02 18:05:41

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

我认为这里的问题是参考在新的Excel应用程序中打开的新工作簿。这是代码的一部分是错误。 如果要将nb.ActiveSheet.QueryTables.Add更改为ActiveSheet.QueryTables.Add,一切正常(但在当前工作簿中,而不是在nb中)。 它必须在新工作簿中执行,而不是在当前工作簿中执行。

Dim app As New Excel.Application, nb As Excel.Workbook
    Set nb = app.Workbooks.Add
    With nb.ActiveSheet.QueryTables.Add(Connection:= _
         "URL; http://www.example.com", _
             Destination:=Range(Cells(2, 2), Cells(57, 3)))
    End With

1 个答案:

答案 0 :(得分:1)

我知道问题出在哪里,就在这里:

Destination:=Range(Cells(2, 2), Cells(57, 3)))

如果您没有明确指定要使用的工作簿,则Range()始终将引用ActiveWorkbook的ActiveSheet。所以改成这个:

Destination:=nb.Worksheets(1).Range(nb.Worksheets(1).Cells(2, 2), nb.Worksheets(1).Cells(57, 3)))

那应该这样做。

编辑:我应该提到同样适用于Cells(),所以我也更新了它们。