我有两个文件,即“macro.xlms”和“data.csv”
我想在 data.csv 上的 macro.xmls 文件中运行宏 [Analyze] 以生成一些数据并保存结果
到目前为止,我的代码是:
macroPath="Macro.xlsm"
filePath="Output.csv"
def performAnalysis():
if os.path.exists(macroPath):
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible= True
excel.Workbooks.Add(filePath)
excel.Application.Run(macroPath+"!Analyze")
excel.Application.Quit()
del excel
else:
print("Error")
def main():
performAnalysis()
main()
当我运行以上内容时,我收到以下错误消息: -
pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, u'Microsoft Excel', u"Cannot run the macro 'C:\\Users\\Nabeel\\Desktop\\dense_breasts_experiments\\VolparaOutputExcelMacroOnly_Nov20thV1.xlsm!VolparaAnalyze'. The macro may not be available in this workbook or all macros may be disabled.", u'xlmain11.chm', 0, -2146827284), None)
任何人都可以指导我做错了吗?
代码编辑:
def performAnalysis():
if os.path.exists(macroPath):
excel = win32com.client.Dispatch("Excel.Application")
excel.Visible= True
excel.Workbooks.Open(filePath)
excel.Workbooks.Open(macroPath)
excel.Application.Run(macroPath+"!Analyze")
def main():
performAnalysis()
main()
仍然得到相同的错误
答案 0 :(得分:1)
不确定您使用的是哪个库,但是win32com可以选择保存更改,您所要做的就是添加以下行:
excel.ActiveWorkbook.Saved = True
此外,导入 win32com.client 后,excel
代表win32.DispatchEx('Excel.Application')
。
让我知道它是否有效!