从Excel调用xlwings"没有命名的模块......"错误

时间:2016-08-22 23:35:23

标签: python vba xlwings

我试图学习使用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,我收到以下错误:

错误

追踪(最近一次呼叫最后一次):

文件"",第1行,

ImportError:没有名为' module1.py&#39 ;;的模块'模块1'不是包

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

确定

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:0)

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

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

xw.Book.caller()代替wb.Book.caller()

答案 1 :(得分:0)

我有同样的错误。解决方案降级为xlwings版本0.7.2