簡體   English   中英

使用xlwings編寫VBA宏以調用python腳本

[英]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

只需適當地編輯testprojworld的名稱testproj

現在,您可以單擊CommandButton來執行腳本!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM