Как правильно получить лист вызова от xlwings? - PullRequest
0 голосов
/ 20 мая 2019

Я уже некоторое время использую 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'), но иногда пользователи переименовывают лист, когда они его используют. Как правильно получить лист вызова?

...