ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 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。