我在从 Excel VBA 运行 python 脚本时遇到问题。这是 VBA 代码:
Sub RunPython()
Dim objShell As Object
Dim PythonExe, PythonScript As String
Set objShell = VBA.CreateObject("Wscript.Shell")
PythonExe = """C:\Users\carlo\AppData\Local\Microsoft\WindowsApps\python3.exe"""
PythonScript = """C:\Users\carlo\Desktop\MSc_Thesis\ML applications\BlackBox\BlackBoxAbsorbers.py"""
objShell.Run PythonExe & PythonScript
End Sub
python代码如下。
print("hello")
input("hello, press enter")
当我运行 VBA 时,python 执行器打开但它立即关闭而没有实际执行脚本。换句话说,"hello"
和 "hello, press enter"
都不会出现在 python executer 窗口中,该窗口突然关闭。
我确定 python.exe 和 python 脚本的路径是正确的。我用 """"
和 ""
都试过了,在这两种情况下都不起作用。显然( super 简单!)如果我直接从 python 执行器运行 python 脚本,它就可以工作。
最佳答案
解决了!!我不明白为什么,但是拆分 objShell.Run PythonExe 和 objShell.Run PythonScript 效果很好!像那样:
Public Sub RunPython()
Dim objShell As Object
Set objShell = VBA.CreateObject("Wscript.Shell")
Dim PythonExe As String
PythonExe = """C:\Users\carlo\AppData\Local\Microsoft\WindowsApps\python3.exe"""
Dim PythonScript As String
PythonScript = """C:\Users\carlo\Desktop\MSc_Thesis\ML applications\BlackBox\BlackBoxAbsorbers.py"""
objShell.Run PythonExe
objShell.Run PythonScript
End Sub
无论如何谢谢@Pᴇʜ,我会把你的回答评为积极的,因为你一直很友善!!
关于python - 通过 Excel VBA 运行 Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68312525/