我有一些在宏中运行的Excel流程。我试图使作业自动化,并希望使用python进行
下面有示例代码-我发现该代码有时不稳定。它并不总是添加该加载项,我也不知道何时关闭excel对象,即,如果宏运行了一段时间,python脚本将不等待。
是否有更好的方法来实现这一目标?我想将更多的宏移入python,但是excel脚本的用户很多,因此这是一个长期目标。
import win32com.client
import os
import traceback
DIRECTORY = '*'
FILE = '*.xlsm'
MACRO = '*'
path = os.path.join(DIRECTORY, FILE)
if os.path.exists(path):
try:
xlApp = win32com.client.Dispatch('Excel.Application')
xlApp.DisplayAlerts = False
xlApp.Visible = True
xlApp.RegisterXLL('*.xll')
wb = xlApp.Workbooks.Open(Filename=path)
xlApp.Application.Run(MACRO)
wb.Save()
wb.Close()
xlApp.Application.Quit()
print('Code ran successfully.')
except:
print('An error was encountered; see traceback.')
print(traceback.format_exc())
xlApp.Quit()