xlwings RunPython с аргументами функции

Я пытаюсь запустить функцию RunPython с помощью кнопки в Excel. Я бы хотел, чтобы функция брала параметр из поля в excel, примерно так:

Sub ImportData()
    Dim choice As String
    choice = Range("B2").Value
    RunPython ("import Excel_module; Excel_module.importing_data(choice)")
End Sub

Возможно ли это? И если да, то как мне написать код? Я бы предпочел не использовать UDF.


person Karin Hahn    schedule 01.03.2019    source источник


Ответы (1)


Вы можете сделать это двумя способами:

1) Используя RunPython как вы:

Вам нужно будет использовать конкатенацию строк:

RunPython ("import Excel_module; Excel_module.importing_data(" & choice & ")")

2) Или, если вы работаете только в Windows, вы также можете использовать декоратор xw.sub и использовать импортированную функцию из VBA, как если бы это была собственная функция VBA, см. документы. В настоящее время он не отображается в документах, но они принимают аргументы.

person Felix Zumstein    schedule 01.03.2019