为了账号安全,请及时绑定邮箱和手机立即绑定

如何在Excel VBA上调用python脚本?

/ 猿问

如何在Excel VBA上调用python脚本?

白板的微信 2019-11-14 09:33:19

试图在Vba上调用python脚本,我是新手。我尝试使用py2exe将主脚本转换为exe,然后从VBA(shell)调用它,但是主脚本调用了其他脚本,因此它变得很复杂,我搞砸了(我的exe无法正常工作)。此外,主脚本是一个大文件,我不想对其进行很多修改。


底线是,有一种方法可以从excel vba调用主脚本,而无需将脚本转换为exe文件。


到目前为止,我尝试了:


RetVal = Shell("C:\python27\python.exe " & "import " & "C:\\" & "MainScriptFile")

它启动python.exe,但不执行其他任何操作。然后我尝试了:


RetVal = Shell("C:\Windows\System32\cmd.exe " & "python " & "C:\\Python27\\hello.py")

它启动命令提示符,但甚至不启动python。


PS我检查了论坛中的所有相关问题,它们不能解决我的问题。


查看完整描述

3 回答

?
呼如林

尝试这个:


RetVal = Shell("<full path to python.exe> " & "<full path to your python script>")

或者,如果python脚本与工作簿位于同一文件夹中,则可以尝试:


RetVal = Shell("<full path to python.exe> " & ActiveWorkBook.Path & "\<python script name>")

里面的所有细节<>都将给出。<>-表示可变字段


我想这应该工作。但是话又说回来,如果您的脚本要调用其他文件夹中的其他文件,则可能会导致错误,除非您的脚本已正确处理它。希望能帮助到你。


查看完整回答
反对 回复 2019-11-14
?
RISEBY

有两种方法可以解决此问题


Pyinx-一种非常轻巧的工具,可让您从excel进程空间http://code.google.com/p/pyinex/调用Python


几年前(当它被积极开发时)我就使用了它,并且效果很好


如果您不介意付款,这看起来还不错


https://datanitro.com/product.html


我从没用过


尽管如果您已经在使用Python写作,也许您可以完全放弃excel并使用纯python做所有事情?维护一个代码库(python)比维护2个代码库(python +任何具有的Excel覆盖)容易得多。


如果您真的必须将数据输出到excel中,那么甚至在Python中甚至有一些非常好的工具。如果这样做可能更好,请告诉我,我将获取链接。


查看完整回答
反对 回复 2019-11-14
?
开满天机

您也可以尝试使用ExcelPython,它允许您操作Python对象并从VBA调用代码。


查看完整回答
反对 回复 2019-11-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信