Макрос VBA через Python скрипт - PullRequest
0 голосов
/ 15 февраля 2020

Я пытаюсь выполнить макрос через python скрипт. Когда я запускаю его в первый раз, он работает правильно, но когда я запускаю его снова через несколько минут, он выдает ошибку как

Файл "<COMObject <unknown>>", строка 2, в запуске pywintypes.com_error:
(-2147352567, «Возникло исключение.», (0, Нет, Нет, Нет, 0, -2146827284), Нет)

Мой сценарий:

import win32com.client as win32
import  time
excel=win32.Dispatch("Excel.Application")
excel.visible=1
book=excel.Workbooks.open('C:\\Users\\C296442\\Documents\Application07012020.xlsm')
excel.application.run("Application07012020.xlsm!Sheet5.CommandButton12_Click")

1 Ответ

0 голосов
/ 15 февраля 2020

Я нашел 2 способа сделать это, и оба, кажется, работают нормально.

from __future__ import print_function
import unittest
import os.path
import win32com.client

class ExcelMacro(unittest.TestCase):
    def test_excel_macro(self):
        try:
            xlApp = win32com.client.DispatchEx('Excel.Application')
            xlsPath = os.path.expanduser('C:\\Users\\rshuell001\\Desktop\\Valuation Code Rollover.xlsb')
            wb = xlApp.Workbooks.Open(Filename=xlsPath)
            xlApp.Run('Macro1')
            wb.Save()
            xlApp.Quit()
            print("Macro ran successfully!")
        except:
            print("Error found while running the excel macro!")
            xlApp.Quit()
if __name__ == "__main__":
    unittest.main()

import os
import win32com.client

#Launch Excel and Open Wrkbook
xl=win32com.client.Dispatch("Excel.Application")  
xl.Workbooks.Open(Filename="C:\Full Location\To\excelsheet.xlsm") #opens workbook in readonly mode. 

#Run Macro
xl.Application.Run("excelsheet.xlsm!modulename.macroname") 

#Save Document and Quit.
xl.Application.Save()
xl.Application.Quit() 

#Cleanup the com reference. 
del xl
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...