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 モジュールとの競合があると思いますが、それが何であるかわかりません... 誰の助けも大歓迎です! どうも