You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel VBA中执行.ipynb格式的Python文件?

解决VBA执行Jupyter Notebook(.ipynb)文件的问题

.ipynb是Jupyter笔记本格式,包含代码块、文本注释和格式元数据,不是可直接被python.exe执行的纯Python脚本,所以直接替换文件路径会执行失败。

方法一:直接用Jupyter执行笔记本(最简单可靠)

修改VBA代码,调用jupyter nbconvert --execute命令直接运行.ipynb文件,该命令会自动执行笔记本中的所有代码单元格:

Sub run_jupyter_notebook()
    Dim wsh As Object
    Set wsh = VBA.CreateObject("WScript.Shell")
    Dim waitonReturn As Boolean: waitonReturn = True
    Dim windowStyle As Integer: windowStyle = 1   

    ' 替换为你的.ipynb文件完整路径,路径含空格时用双引号包裹
    Dim nbPath As String
    nbPath = """C:\实际路径\你的文件.ipynb"""

    ' --execute 执行笔记本所有单元格;--inplace 可选,用于将执行结果保存回原文件
    wsh.Run "jupyter nbconvert --execute " & nbPath & " --inplace", windowStyle, waitonReturn
End Sub

注意事项

  • 确保已安装Jupyter:打开命令提示符执行pip install jupyter完成安装
  • 如果系统PATH中未包含Jupyter,需使用完整路径调用,例如:"C:\Users\kingd\AppData\Local\Programs\Python\Python39\Scripts\jupyter.exe"

方法二:先转成.py脚本再执行(适合需要保留可执行脚本的场景)

先通过jupyter nbconvert将.ipynb转成纯.py文件,再用原有的Python执行逻辑运行:

Sub convert_and_run_notebook()
    Dim wsh As Object
    Set wsh = VBA.CreateObject("WScript.Shell")
    Dim waitonReturn As Boolean: waitonReturn = True
    Dim windowStyle As Integer: windowStyle = 1   

    Dim nbPath As String, pyPath As String
    ' 替换为你的.ipynb路径和要生成的.py路径
    nbPath = """C:\实际路径\你的文件.ipynb"""
    pyPath = """C:\输出路径\生成的脚本.py"""

    ' 第一步:将.ipynb转换为.py文件
    wsh.Run "jupyter nbconvert --to script " & nbPath & " --output " & pyPath, windowStyle, waitonReturn
    ' 第二步:运行生成的Python脚本
    wsh.Run "C:\Users\kingd\AppData\Local\Programs\Python\Python39\python.exe " & pyPath, windowStyle, waitonReturn
End Sub

总结

优先选择方法一,无需额外生成文件,直接执行笔记本,是最简单可靠的解决方案。

内容的提问来源于stack exchange,提问作者YoungJoo Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 12:39:50