Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从VBA调用python脚本_Python_Vba - Fatal编程技术网

从VBA调用python脚本

从VBA调用python脚本,python,vba,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, vbNormalFo

这一个上似乎有很多线程,它们都指向这个解决方案:

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.

试试这个:

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
添加参数“-i”以检查执行情况

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

Shell "python -i " & scriptpath

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

如果我是你,我会将这些命令写入批处理文件,然后运行批处理文件。哈哈!这将是我的下一个问题!谢谢,太棒了!!我一直在找这个。