python - 从 VBA 运行并执行 python 脚本

标签 python vba excel batch-file

我正在尝试从我的 VBA 模块运行 python 脚本。我已经尝试了几乎所有我在互联网上看到的例子,所以没有运气。 在 VBA 模块中,我还运行了一个 .bat 文件,它运行良好:

batchname = "U:\Backup Bat File.bat"

Shell batchname, vbNormalFocus

接下来我需要运行 python 脚本,它与 excel 文件位于同一文件夹中。 现在我正在尝试这个:

Dim Ret_Val

Dim args

args=Activeworkbook.Path & "\beps_output.py"

Ret_Val = Shell("C:\python34\python.exe" & args, vbNormalFocus)

它没有出错,但什么也没有发生。我对“Ret_Val”(返回值?)在这里做了什么,以及为什么它没有运行感到有点困惑。

最佳答案

这是在我的电脑上运行的(Win 7 x64,python 2.7.9):

Sub runpython()
    Dim Ret_Val
    Dim args As String

    args = "W:\programming\python\other_py\sqrt.py"
    Ret_Val = Shell("C:\Program Files (x86)\python27\python.exe" & " " & args, vbNormalFocus)
    If Ret_Val = 0 Then
       MsgBox "Couldn't run python script!", vbOKOnly
    End If
End Sub
如果调用成功,

Ret_Val 将为非零,即启动命令的 processID。请注意,该命令将异步运行,即 VBA 代码继续运行的速度将快于外部命令的终止速度。

关于python - 从 VBA 运行并执行 python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30531662/

相关文章:

python - 从其他 Python 进程访问 Python 命名空间

python - 尝试在使用 any() 遍历时使用删除重复项

VBA Excel to Word - 对于下一个循环随机跳过数据

vba - 使用 vba 进行偏移和调整大小

python - 使用给定字符串更改列表

python - 在 Sympy 中查找微分方程的阶

c# - 发送 AT 命令

excel - 如何使用 Excel VBA 对所需的单元格范围进行标准差?

excel - 从函数返回服务器错误为字符串?

vba - 终止宏在验证时进一步执行