我有一段代码,我过去用它来触摸excel文件,运行已保存在工作簿中的宏,保存并关闭。例如:
import win32com.client
import os
import os.path
file = 'myworkbook.xlsm'
path = 'C:/PATH/'
macro = 'mymacro'
filename = os.path.join(path, file)
xlApp = win32com.client.Dispatch("Excel.Application")
wkbk = xlApp.Workbooks.Open(filename)
runMacro = wkbk.Name + '!' + macro
xlApp.Run(runMacro)
wkbk.Save()
wkbk.Close(1)
xlApp.Quit()
xlApp = None
但是,我现在想在刷新数据连接的宏上使用它,从而提示输入有问题的SQL数据库的密码。当我尝试运行它而不用担心凭据时,我收到此错误:
com_error:(-2147352567,'异常发生。',(0,u'Microsoft Office Excel',u“无法运行宏'MYMACRO' 宏可能在此工作簿中不可用或所有宏都可用 禁用。“,u'C:\ Program Files(x86)\ Microsoft Office \ Office12 \ 1033 \ XLMAIN11.CHM',0,-2146827284),无)
有没有办法让这项工作 - 即。将所需的凭据从python传递到excel以便宏可以运行?