# VBA: RunPython
## xlwings 加載項
要訪問`RunPython`函數,您需要xlwings 加載項(或VBA模塊),請參閱[加載項](addin.md)
對于新項目,最簡單的入門方法是使用帶有quickstart命令的命令行客戶端,請參閱[命令行客戶端](command_line.md)詳情:
~~~
$ xlwings quickstart myproject
~~~
## 使用“RunPython”調用Python
在VBA編輯器(`Alt-F11`)中,將下面的代碼寫入VBA模塊。 `xlwings quickstart`會自動添加一個帶有示例調用的新模塊。 如果您想從頭開始,可以通過`Insert> Module`添加新模塊。
~~~
Sub HelloWorld()
RunPython ("import hello; hello.world()")
End Sub
~~~
這將調用`hello.py`中的以下代碼:
~~~
# hello.py
import numpy as np
import xlwings as xw
def world():
wb = xw.Book.caller()
wb.sheets[0].range('A1').value = 'Hello World!'
~~~
然后,您可以將`HelloWorld`附加到一個按鈕,或者通過點擊`F5`直接在VBA編輯器中運行它。
>[info]注意
將`xw.Book.caller()`放在從Excel調用的函數中,而不是作為全局變量調用。 否則,它會阻止Excel在退出時正常關閉,并在您使用`OPTIMIZED_CONNECTION = True`時離開僵尸進程。
## 函數參數和返回值
雖然在技術上可以在`RunPython`中的函數調用中包含參數,但它不是很方便。 此外,`RunPython`不允許您返回值。 要解決這些問題,請使用UDF,請參閱[VBA: User Defined Functions (UDFs)](udfs.md) - 但是,目前僅限于Windows。