【发布时间】:2021-06-17 09:59:38
【问题描述】:
我在 Excel 中有一个输入文件,用于 Python 脚本solver.py。当我运行 Python 脚本时,输出会打印在不同的 .xlsx 文件中。我想直接从输入文件中调用 python 脚本。我使用以下代码:
Dim objShell As Object
Dim PythonExe, PythonScript As String
Set objShell = VBA.CreateObject("Wscript.Shell")
PythonExe = "C:*PATH*\Anaconda3\python.exe"
PythonScript = "C:*OTHERPATH*\solver.py"
objShell.Exec PythonExe & " " & PythonScript
ActiveWorkbook.UpdateLink Name:= _
"C:*OTHERPATH*\output.xlsx", Type:= _
xlExcelLinks
最后一行无关紧要,但是当我手动更改输出文件并调用代码时,值会更新。所以我确信这段代码可以完全运行。但是,solver.py 永远不会被调用。我看到黑屏闪了一下,但就是这样,没有进行任何计算。
为什么没有调用solver.py?由于我没有收到错误消息,有什么方法可以检查出现了什么问题?
【问题讨论】:
-
您确定该用户有权访问“C:”驱动器下的路径吗?
-
@MaciejLos 这些是我自己的文件。我可以手动打开 python.exe。带有 VBA 代码的文件 solver.py、output.xlsx 和 input.xslx 位于同一文件夹中。所以我很确定访问不是问题?
-
我建议在您的 VBA 代码中添加错误处理程序以找出导致问题的原因。