我有一个使用win32com在Excel文件上运行VBA宏的python脚本。 问题在于,如果VBA宏中存在异常,Excel将打开并显示一个对话框,要求用户继续。
这将阻止其余的python执行,直到用户回答对话框为止。
由于我的应用程序将在服务器上运行以生成多个Excel文件,因此不会有用户关闭该对话框。
出现错误时如何忽略Excel对话框,以便我的应用程序可以继续运行?
这是我的python代码:
import comtypes
comtypes.CoInitialize()
import win32com.client
excel = win32com.client.DispatchEx("Excel.Application")
excel.DisplayAlerts = False
wb = excel.Workbooks.Open(Filename=excel_file)
try:
excel.Run('ReportModule.Compute')
wb.Save()
except Exception as e:
logging.error('Failed to run macro for {}.'.format(excel_file))
logging.error(e, exc_info=True)
excel.Quit()