我在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*Anaconda3python.exe"
PythonScript = "C:*OTHERPATH*solver.py"
objShell.Exec PythonExe & " " & PythonScript
ActiveWorkbook.UpdateLink Name:= _
"C:*OTHERPATH*output.xlsx", Type:= _
xlExcelLinks
最后一行无关紧要,但当我手动更改输出文件并调用代码时,值会更新。所以我确信这段代码是完全运行的。但是,永远不会调用solver.py。我看到黑屏很快就会闪烁,但仅此而已,没有进行任何计算。
为什么不调用solver.py?既然我没有收到错误消息,有什么方法可以检查出了什么问题吗?
自己找到了答案。我在命令提示符下运行了以下内容:
"C:*PATH*Anaconda3python.exe" "C:*OTHERPATH*solver.py"
我发现进口熊猫有问题,因为numpy没有正确的版本。从Spyder内部运行时没有此问题。重新安装panda和numpy解决了我的问题。