在新的Excel工作簿应用程序中进行Web查询

我认为这里的问题是参考在新的Excel应用程序中打开的新工作簿。 这是代码的一部分是错误的。 如果要更改nb.ActiveSheet.QueryTables.AddActiveSheet.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 

我看到问题在哪里,在这里:

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(),所以我更新了这些。