我正在尝试从我的 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”(返回值?)在这里做了什么,以及为什么它没有运行感到有点困惑。
最佳答案
这是在我的电脑上运行的(Win 7 x64,python 2.7.9):
Sub runpython()
Dim Ret_Val
Dim args As String
args = "W:\programming\python\other_py\sqrt.py"
Ret_Val = Shell("C:\Program Files (x86)\python27\python.exe" & " " & args, vbNormalFocus)
If Ret_Val = 0 Then
MsgBox "Couldn't run python script!", vbOKOnly
End If
End Sub
如果调用成功,Ret_Val
将为非零,即启动命令的 processID。请注意,该命令将异步运行,即 VBA 代码继续运行的速度将快于外部命令的终止速度。
关于python - 从 VBA 运行并执行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30531662/