У меня проблема с запуском xlwings макроса из Python. Несмотря на то, что я следую коду из документации xlwings, я не могу заставить xlwings выполнять макрос Excel. Например, в книге Excel с именем «Book.xlsm»:
' in Excel workbook Book.xlsm
Sub Test()
Set ws = Worksheets("ABC")
ws.Range("A1").Value = 10
End Sub
Этот макрос работает нормально в Excel. Но когда я пытаюсь вызвать этот модуль из Python, он терпит неудачу:
# in Python
import xlwings
wb = xlwings.Book('C:\\Book.xlsm')
wb.macro('Test')
print('done.')
Нет сообщений об ошибках. Код Python просто запускается и завершается, печатая сообщение «готово». но когда я проверяю рабочий лист ABC, ничего не пишется. Обратите внимание, что я могу подключиться к этой книге и изменить значения ячеек с помощью xlwings. Я просто не могу заставить его запустить тестовый макрос.
Также обратите внимание, что я использовал гораздо более старый xlwings (я думаю, до 0.7.0), и он запускает мои макросы без проблем. Сейчас я использую версию 0.10.0.
wb.macro
отображает только функцию/макрос VBA, вам нужно вызывать его отдельно:test = wb.macro('Test')
, затем вызыватьtest()
- person Felix Zumstein   schedule 07.11.2016