使用Python脚本安全运行Excel宏

时间:2018-11-12 10:51:08

标签: python excel vba

我有一些在宏中运行的Excel流程。我试图使作业自动化,并希望使用python进行

  1. 打开excel
  2. 添加任何com32加载项
  3. 运行宏
  4. 宏完成后,关闭excel实例

下面有示例代码-我发现该代码有时不稳定。它并不总是添加该加载项,我也不知道何时关闭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()

0 个答案:

没有答案