从VBA调用python脚本

时间:2017-08-03 16:14:34

标签: python vba

在这个问题上似乎有很多线程,他们都指出了这个解决方案:

Function call_py()

Dim rv As Variant
Const pypath = "C:\Users\user\AppData\Local\Programs\Python\Python36-32\python.exe "
Const scriptpath = "c:\Users\user\Desktop\test.py"

    rv = Shell(pypath & scriptpath, vbNormalFocus)


End Function

或类似的东西。所有这一切都会使shell弹出并消失,而不执行脚本。我做错了什么?

P上。

2 个答案:

答案 0 :(得分:1)

试试这个:

Sub bat()
Dim batch, fso As Object
Dim path As String
path = "c:\Users\user\Desktop\"

Set fso = CreateObject("Scripting.FileSystemObject")
Set batch = fso.CreateTextFile(path & "python.bat", True)
batch.writeline "cd " & path
batch.writeline "python test.py"
batch.Close

Shell path & "python.bat", 1
End Sub

答案 1 :(得分:0)

添加参数“-i”以检查执行。

控制台将保持打开状态,您将能够看到它无法正常工作的原因:

Shell "python -i " & scriptpath

如果路径包含空格字符,请确保引用路径。