我想在Excel中编写一个VBA宏来调用python脚本。 python 脚本将执行一些命令,然后返回 pandas 数据帧。我有写入 Excel 电子表格的代码,该代码位于 python 脚本内。
我已经安装了 xlwings 并阅读了 VBA 宏教程,但仍然很困惑。我应该使用用户定义的函数吗?我需要在脚本中“返回任何内容”吗?
最佳答案
如果你的Python脚本直接写入工作簿,这并不困难。首先,如果写入工作簿的内容足以满足您的需求,则无需从 VBA 宏或 Python 返回任何内容。
您不需要 UDF。您所需要的只是以下内容(我基本上是从 xlwings 官方文档 here 复制的):
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
适本地。
您现在可以单击命令按钮来执行脚本!
关于python - 使用 xlwings 编写 VBA 宏来调用 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45468427/