4

XLWINGS によって書き込まれたデータに基づいて Excel でピボット テーブルを更新しようとしています。XLWINGSから直接行う方法がわからないので、VBAを使ってみました。

プロセスを 2 つのステップに分けてみましょう。

ステップ1

vba から Python コードを起動します (私のモジュール名は「PosRep」です。Python コードは、xlwings.

Sub launchPython()
RunPython ("import PosRep; PosRep")
End Sub

ステップ2

しかし、Excel で新しく作成した範囲のサイズが事前にわからないので、それを選択し、新しい名前 (NamedRange) を追加して、ピボット (既に NamedRange にリンクされています) を更新します。

Sub SelectRange()
Worksheets("GPODump").Range("A1").Select
'...
End Sub

両方のサブは独立してうまく機能します。しかし、それらを生で機能させることはできません。次のコード:

Sub Main()
launchPython
SelectRange
End Sub

次のステートメントで VBA エラー「Range クラスの Select メソッドに失敗しました」が生成されます。

Worksheets("GPODump").Range("A1").Select

XLWINGS VBA モジュールとの競合があると思いますが、それが何であるかわかりません... 誰の助けも大歓迎です! どうも

4

3 に答える 3

1

問題は VBA コードにありました。次のコードは正常に動作します。

Sheets("GPODump").Select
Sheets("GPODump").Range("A1").Select
于 2014-12-03T11:53:00.530 に答える