首页 > 解决方案 > 使用 xlwings 调用 Python UDF

问题描述

我试图通过 xlwings 在 excel 中调用两个 Python UDF,我看到以下错误消息: 确保此工作簿包含 xlwings 模块并且您信任对 VBA 项目对象模块(选项)的访问。

宏设置已启用,工作簿也引用了 xlwings。Anaconda 中的 xlwings 版本是 0.20.0,我认为这是最新版本,但我只能在 xlwings 插件设置下看到“导入 Python UDFs”按钮,没有别的,这与我看到的插件设置不同在一些视频中。我正在使用 Jupyter Notebook,我的 python 代码保存在“M:\SolverFunction.ipynb”中。我还将代码保存在同一目录中具有相同名称的 .py 扩展名中,不确定我是否可以直接使用 .ipynb 扩展名。以下是我在 VBA 中的功能设置,有人可以检查一切是否正确:

PYTHON_WIN = "C:\Program Files\Anaconda3\pythonw.exe"
PYTHON_MAC = ""
PYTHON_FROZEN = ThisWorkbook.Path & "\build\exe.win32-2.7"
PYTHONPATH = "M:\"
UDF_MODULES = "SolverFunction"
UDF_DEBUG_SERVER = False
LOG_FILE = ""
SHOW_LOG = True
OPTIMIZED_CONNECTION = False

当我运行宏 Run_Python_Function 时,它显示 SyntaxError: Syntax Error in Macro

我需要调用两个python UDF,不知道如何修复这个错误,python代码本身没有错误。另一个问题:在python代码中我使用'xw.Book'来调用现有的工作表

wb = xw.Book(r'M:\SolverFunction.xlsm')

如果工作表以其他名称保存在另一个目录中,请说“C:\Desktop\DVA Totem Submission\xyz.xlsm”,除非修改代码

wb = xw.Book(r'C:\Desktop\DVA Totem Submission\xyz.xlsm')

我是否也需要更改 VBA 中的功能设置?谢谢,

标签: pythonsettingsxlwings

解决方案


推荐阅读