[英]Writing a VBA macro to call a python script using xlwings
我想在Excel中編寫VBA宏以調用python腳本。 python腳本將執行一些命令,然后返回pandas數據框。 我有寫入excel電子表格的代碼,該代碼位於python腳本內。
我已經安裝了xlwings並閱讀了VBA宏教程,但仍然感到困惑。 我應該使用用戶定義函數嗎? 我需要在腳本中“返回任何內容”嗎?
如果您的Python腳本直接寫入工作簿,這並不困難。 首先,如果您對工作簿進行的編寫足以滿足您的需要,則無需從VBA宏或Python返回任何內容。
您不需要UDF。 所有你需要的是下面的(我已經基本上從xlwings官方文檔復制這里 ):
1)確保您的excel書籍可以與您擁有腳本的文件進行對話(最好使用命令行上的命令xlwings quickstart <project_name>
完成,然后將腳本復制到生成的Python文件中。
2)確保可以通過__main__()
類的單個函數調用所需的所有內容(或准備運行execfile或類似的文件)
3)轉到您的excel書籍並創建一個命令按鈕,然后為其分配xlwings為您提供的宏SampleCall
4)現在打開VBA編輯器。 您應該立即看到SampleCall宏:
Sub SampleCall()
RunPython ("import testproj;testproj.world()")
End Sub
只需適當地編輯testproj
和world
的名稱testproj
。
現在,您可以單擊CommandButton來執行腳本!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.