VBA Shell命令未运行(Python脚本)

时间:2019-03-01 01:00:28

标签: python vba shell

我编写了PYthon脚本,该脚本在从正常命令提示符运行时可以运行,但是在通过VBA代码运行时该命令不起作用。

我检查了waitOnReturn是否可以帮助我,但是即使使用waitReturn,我的python脚本似乎也无法在VBA上正常工作,并且也没有错误弹出窗口。

Sub Exec()
Dim objShell As Object
Dim PythonExec, PythonScript As String
Dim waitOnReturn As Boolean: waitOnReturn = True
Dim windowStyle As Integer: windowStyle = 1

Set objShell = VBA.CreateObject("Wscript.Shell")

PythonExec = """C:\Users\123\AppData\Local\Programs\Python\Python37-32\python.exe"""
PythonScript = "C:\Users\123\Run.py"

 objShell.Run PythonExec & " " & PythonScript, windowStyle, True

End Sub

你们能帮我解决这个问题吗?我不知道自己缺少什么。

1 个答案:

答案 0 :(得分:0)

一开始它对我也不起作用,一个窗口弹出并立即消失。

为我解决的是在所有路径中使用“”。

像这样:

PythonExec = """C:\Users\123\AppData\Local\Programs\Python\Python37-32\python.exe"""

PythonScript = """C:\Users\123\Run.py"""

最后,如果使用cmd运行脚本,您将看到错误消息,如下所示:

objShell.Run "cmd /k" & " " & PythonExec & " " & PythonScript

即使脚本无法运行,您也将获得有关其失败原因的信息