excel中带有xlwings的python

问题描述 投票:0回答:1

我正在尝试通过xlwings从实现win32com.client的现有python脚本中实现UDF。如果脚本是从shell运行的,则该脚本是成功的;但是,如果从相应的UDF调用该脚本,则该脚本将失败并显示“自动化错误”。通过调试,我发现错误是由于尝试为sel_range.Interior.Color设置新值而引起的,其中sel_range是活动工作表中的Range对象(来自win32com.client)。

特别是在尝试调用Python38-32\Lib\site-packages\win32com\client\__init__.py时从self._oleobj_.Invoke(*(args + (value,) + defArgs))的第482行引发了异常。比较从shell运行和从UDF运行,所有对象和参数都相同。

不幸的是,我无法在Invoke中进行进一步的调试,而我只是从COM对象开始。

有人知道这个问题可能是什么吗?为什么oleobj的调用具有如此不同的行为?基本脚本完全基于win32com,从xlwings中,我仅使用带有xw.func装饰器的插件。

编辑我发现这确实是xlwings的理想行为,并且范围不能在UDF中设置。有什么解决方法吗?等效的东西。

python-3.x excel com xlwings
1个回答
0
投票

由于它似乎是主要的Excel设计,所以我将函数的逻辑移到了一个宏,并将其分配给一个按钮。

© www.soinside.com 2019 - 2024. All rights reserved.