我已经使用RunPython
一段时间了,下面的结构来自Excel VBA
Sub GetModel()
RunPython ("from [...] import fill_model; fill_model()")
End Sub
python函数看起来像下面的,在我更新到xlwings 0.15.6之前一直工作。
from xlwings.main import Book
def fill_model():
wb = Book.caller()
现在我在从Excel运行时得到以下异常:
例外:不能直接调用Book.caller()。请通过Excel调用或先使用Book.set_mock_caller()设置一个模拟调用者。
然而,这不是一个模拟调用者设置,因为我是从excel调用的。我知道我可以使用像wb = Book('name_of_sheet.xlsm')
这样的调用,但有时用户在使用它时会重命名工作表。什么是获得调用工作表的正确方法?
1条答案
按热度按时间lp0sw83n1#
您可以在定义参数时使用'vba'关键字,然后使用VBA对象作为活动工作表名称,如下所示: