При попытке запуска макроса через Python макрос запускается, но после выполнения вылетает с ошибкой - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь выполнить макрос с помощью модуля win32com.client в Python и смог успешно открыть и выполнить мой макрос (который работает без ошибок при взаимодействии с ним через Microsoft Excel).Как только макрос завершит выполнение и выдаст нужный вывод в книге Excel, программа Python аварийно завершает работу и выдает ошибку, например:

>Traceback (most recent call last):
 File"my\path\to\python\program", line 19, in <modlule>
 xl.Application.Run('main')
 File"my\path\AppData\Local\Temp\gen_py\3.7\00020813-0000-0000-C000-000000000046x0x1x9\_Application.py", line 376, in Run
, Arg26, Arg27, Arg28, Arg29, Arg30
File"my\path\AppData\Local\Programs\Python\Python37-32\lib\site-packages\win32com\client\__init__.py", line 467, in _ApplyTypes_
self._oleobj_.InvokeTypes(dispid, 0, wFlags, retType, argTypes, *args),
 pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146788248), None)

Ниже приведен мой код:

import win32com.client
import win32com
import os, os.path

xl = win32com.client.gencache.EnsureDispatch("Excel.Application")
xl.Workbooks.Open(Filename=r"my\path\Desktop\WorksWithPy.xlsm")
xl.Visible = True
xl.Workbooks(1).Worksheets(1).Cells(4, 7).Value = r"17639d0c-2007-4a68-a0fd0b615d6f8fed"
xl.Workbooks(1).Worksheets(1).Cells(7, 7).Value = r'\\local\server\address'
xl.Application.Run(r'main')
xl.Workbooks(1).SaveAs(Filename=r'my\path\Desktop\sameFileButWithDesiredResults.xlsm', FileFormat=52)
xl.Workbooks(1).Close(0)
xl.Quit()

1 Ответ

0 голосов
/ 31 октября 2018

Закончилось просто «исключением», передачей ошибки и просто убиванием окна, как только я закончил с макросом.

...