我正在尝试从VBA模块运行一个python脚本。我已经尝试了几乎所有我在网上看到的例子,所以没有运气。 在VBA模块中,我还运行一个.bat文件,它工作得很好:
batchname = "U:\Backup Bat File.bat"
Shell batchname, vbNormalFocus
接下来我需要运行python脚本,它与excel文件位于同一个文件夹中。 现在我正在尝试:
Dim Ret_Val
Dim args
args=Activeworkbook.Path & "\beps_output.py"
Ret_Val = Shell("C:\python34\python.exe" & args, vbNormalFocus)
不会出错,但什么也没发生。我有点搞不懂“Ret_Val”(返回值?)在这里,为什么它不运行。
尝试在exe程序和文件之间添加一个空格:
另外,由于Shell是一个返回具有指定参数的值(variant type-double)的函数,因此返回的值可以包含在变量中,正如您使用Ret-Val指定的那样。然后可以使用此值添加条件逻辑和错误处理。
这是在我的电脑上运行的(Win 7 x64,python 2.7.9):
如果调用成功,
Ret_Val
将为非零,即已启动命令的processID。请注意,该命令将异步运行,即VBA代码的继续速度将快于外部命令的终止速度。相关问题 更多 >
编程相关推荐