我编写了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
你们能帮我解决这个问题吗?我不知道自己缺少什么。
答案 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
即使脚本无法运行,您也将获得有关其失败原因的信息