Python - запустить макрос Excel

Я хотел бы использовать Python для запуска макроса, содержащегося в MacroBook.xlsm на листе в Data.csv.

Обычно в Excel у меня открыты оба файла, я переключаю фокус на файл Data.csv и запускаю макрос из MacroBook. Сценарий python ежедневно загружает файл Data.csv, поэтому я не могу поместить макрос в этот файл.

Вот мой код:

import win32com.client
import os
import xl

excel = win32com.client.Dispatch("Excel.Application")

macrowb = xl.Workbook('C:\MacroBook.xlsm')
wb1 = xl.Workbook('C:\Database.csv')
excel.Run("FilterLoans")

Я получаю ошибку,

pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Cannot run the macro 'FilterLoans'. The macro may not be available in this workbook or all macros may be disabled.", u'xlmain11.chm', 0, -2146827284), None)

В сообщении об ошибке указано, что FilterLoans недоступен в файле Database.csv ... как его импортировать?

 user113777815 июн. 2012 г., 16:33
Код Сиддхарта работает, спасибо! @iDevlop - это не работает, потому что он пытается запустить код на макроболе.
 Siddharth Rout14 июн. 2012 г., 02:50
То же самое здесь: P Я не использовал Python, поэтому попробуйте этоexcel.Run("MacroBook!FilterLoans")
 Patrick Honorez14 июн. 2012 г., 00:08
Никогда не использовал Python, но только предположение:macrowb.Run("FilterLoans") ?

Ответы на вопрос(1)

1) вы не можете иметь VBA для файла * .. Вам нужен файл * .xlsm, чтобы быть активной книгой. Я не думаю, что вам вообще нужно открывать файл * ., если ваш макрос знает, как его найти.

2) Включите доступ к модулю VBA в вашем Office Excel:

File
options
Trust Center
Trust Center Settings
Macro Settings
Enable VBA access

3) Я использую эту функцию для запуска макросов:

excel.Application.Run("FilterLoans")

Ваш ответ на вопрос