编写VBA宏以使用xlwings调用python脚本
我想在Excel中编写一个VBA宏来调用python脚本。python脚本将执行一些命令,然后返回一个数据帧。我有写入excel电子表格的代码,它在python脚本中编写VBA宏以使用xlwings调用python脚本,python,excel,pandas,xlwings,vba,Python,Excel,Pandas,Xlwings,Vba,我想在Excel中编写一个VBA宏来调用python脚本。python脚本将执行一些命令,然后返回一个数据帧。我有写入excel电子表格的代码,它在python脚本中 我已经安装了xlwings并阅读了VBA宏教程,但仍然感到困惑。我应该使用用户定义的函数吗?我需要在脚本中“返回任何内容”吗 如果Python脚本直接写入工作簿,这并不困难。首先,如果写入工作簿的内容足够,则不需要从VBA宏或Python返回任何内容 你不需要自定义项。您只需要以下内容(我基本上是从xlwings官方文档中复制的)
我已经安装了xlwings并阅读了VBA宏教程,但仍然感到困惑。我应该使用用户定义的函数吗?我需要在脚本中“返回任何内容”吗 如果Python脚本直接写入工作簿,这并不困难。首先,如果写入工作簿的内容足够,则不需要从VBA宏或Python返回任何内容 你不需要自定义项。您只需要以下内容(我基本上是从xlwings官方文档中复制的): 1) 确保excel手册可以与脚本所在的文件对话(最好使用命令行上的命令
xlwings quickstart
,然后将脚本复制到生成的Python文件中)
2) 确保您可以从单个函数调用所需的一切,如\uuuu main\uuuu()
(或者准备运行execfile或类似的函数)
3) 转到您的excel手册,制作一个命令按钮,然后将xlwings为您提供的宏SampleCall分配给它
4) 现在打开VBA编辑器。您应该立即看到SampleCall宏:
Sub SampleCall()
RunPython ("import testproj;testproj.world()")
End Sub
只需适当编辑testproj
和world
的名称
您现在可以单击您的命令按钮来执行脚本 testproj是项目的名称,world是python文件的名称。我要试一试!testproj是Python文件的名称,world是要从该文件执行的函数的名称。RunPython函数实际上将执行Python代码,因此那里的import语句的工作方式与普通Python文件中的工作方式完全相同。祝你好运