【问题标题】:Calling xlwings from Excel "No module named..." Error从 Excel 中调用 xlwings“没有名为...的模块”错误
【发布时间】:2016-08-22 23:35:23
【问题描述】:

我正在尝试学习使用 xlwings 0.9.2 从 Excel VBA 启动 Python 脚本的技巧。根据文档,我需要将 PYTHONPATH 更改为我的 py 文件的路径。我已经看过这个问题的几个版本和各种答案,但没有一个解决了我的具体情况。我有一个基本的测试模块“module1.py”和一个位于桌面上的 Excel 文件“Book2.xlsm”,它有一个运行这个宏的按钮:

Sub macro1()
RunPython ("import module1.py; module1.run_all()")
End Sub

module1 是这样的:

import xlwings as xw

def run_all():
    wb.Book.caller()
    xw.sheets("Sheet1").range("A1").value = "Done!"
    return

然后我导入“xlwings.bas”文件并编辑VBA代码以读取PYTHONPATH = "C:\Users\bwamp\Desktop\module1\module1,它指的是包含“module1.py”的子文件夹(完整路径:“C:\Users\bwamp\Desktop\ module1\module1\module1.py”,为清楚起见)。按下按钮运行macro1,我得到以下错误:


错误

Traceback(最近一次调用最后一次):

文件“”,第 1 行,在

ImportError: 没有名为“module1.py”的模块; 'module1' 不是一个包

按 Ctrl+C 将此消息复制到剪贴板。

好的

任何想法我做错了什么?

【问题讨论】:

    标签: python vba xlwings


    【解决方案1】:

    您有两个错误:您需要导入没有.py 结尾的模块:

    Sub macro1()
    RunPython ("import module1; module1.run_all()")
    End Sub
    

    它是xw.Book.caller() 而不是wb.Book.caller()

    【讨论】:

    • 我知道这很简单!非常感谢!
    【解决方案2】:

    我有同样的错误。通过降级到 xlwings 版本 0.7.2 解决

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-23
      • 2015-03-24
      • 2021-05-17
      • 2017-05-02
      • 2020-02-12
      • 2015-05-09
      • 1970-01-01
      • 2017-12-26
      相关资源
      最近更新 更多