Запустите код Excel VBA из вновь созданного файла Excel, используя Python - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь запустить макросы Excel из программного инструмента ABAQUS, который имеет встроенный Python.

У меня есть файл Excel по умолчанию, я хочу его в качестве основного файла Excel и создать новый файл Excel в зависимости от выходного файла базы данных.

  • Я получаю доступ к файлу выходной базы данных ABAQUS, получаю его имя и создаю новый файл Excel с именем, комбинируя имя выходного файла базы данных и другое имя.
  • Я копирую основной файл Excel в этот новый файл Excel.

Я могу открыть этот вновь созданный файл, но не могу запустить макрос.

Вот код с комментариями.

Я получаю путь к моему файлу с именем и расширением

filePath = odbFile.path

Имя файла только с расширением

filename_w_ext = os.path.basename(filePath)
odbfilename,odbfileExtension = os.path.splitext(filename_w_ext)
excel_filename='abc.xlsm' 
odbfilename+'_FAT'+'.xlsm'
newExcelFile = odbfilename+'_FAT'+'.xlsm' 
shutil.copy(excel_filename, newExcelFile)

У меня есть доступ к win32client для доступа к приложению Excel

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

Открывая файл Excel, укажите путь к файлу

xl.Workbooks.Open(newExcelFile)

Скажите, что созданное newExcelFile имя new.xlsm.

Для запуска макросов Excel с использованием PYTHON код по умолчанию -

xl.Application.Run("excelName!ModuleNumberOfTheMacro.MacroName")

Запустить мой макрос для импорта узлов из Excel

xl.Application.Run("newExcelFile!Module1.ImporterFichiersTextes")

Я записал тот же формат, но Python ищет лист Excel 'newExcelFile' вместо new.xlsm.

...