#-*- encoding: gb2312 -*- import os, shutil, sys import pythoncom from win32com.client import Dispatch #VBA宏参数一 VerInfo = r'宏参数一' #调用接口 def get_data(): print 'Call VBA MACRO start' #EXCEL的地址 file_path = r'c:/test.xls' #生成文件存放的路径 rst_file_path = r'D:/result' VersionFlag = r'宏参数二' if os.path.isdir(rst_file_path): shutil.rmtree(rst_file_path) pythoncom.CoInitialize() exlapp = Dispatch('Excel.Application') exlapp.visible = 1 FileApp = exlapp.Workbooks.Open(os.path.realpath(file_path)) #设置参数,假设VBA宏名为VBAMACROTEST,宏VBAMACROTEST方法需要3个参数 strPara = FileApp.Name + "!VBAMACROTEST(/"" + rst_file_path+ '//||' + VerInfo + "/", /"" + VersionFlag + "/")" print strPara exlapp.ExecuteExcel4Macro(strPara) FileApp.Close(SaveChanges=0) print 'Call VBA MACRO end' if __name__=='__main__': get_data()