0

ここでの問題は、新しい 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
4

1 に答える 1

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()にも同じことが当てはまることに言及する必要があるため、それらも更新しました。

于 2015-02-02T18:29:37.923 に答える