pywin/win32com 保存启用宏的电子表格时出现文件访问错误

pywin/win32com file access error when saving a macro-enabled spreadsheet

我有以下代码读取现有 Excel 文件,添加宏,然后尝试将其保存到另一个启用宏的 excel 文件。

import win32com.client as win32
import comtypes, comtypes.client

name="//path//to//test1.xlsx"
sheetName = "Sheet1"

xlOpenXMLWorkbookMacroEnabled = 52
xl=win32.gencache.EnsureDispatch('Excel.Application')
xl.Visible=True
ss = xl.Workbooks.Open(name, False, True)
ss.Worksheets(sheetName).Activate()
xlmodule = ss.VBProject.VBComponents.Add(1)  
VBAcode='''sub VBAMacro()
       Range("A1").Value = 1
      end sub'''

xlmodule.CodeModule.AddFromString(VBAcode)

#xl.Run(name+'!VBAMacro')

ss.SaveAs(Filename=name[:-5] + '-macro.xlsm', FileFormat=xlOpenXMLWorkbookMacroEnabled)

xl.Quit()

在做这件事的时候,我一直在考虑xlOpenXMLWorkbookhere and here的问题。但是,当我尝试 运行 时,出现错误:

com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "Microsoft Excel cannot access the file ...

我已经在没有 SaveAs 行的情况下测试了这段代码,它读取文件正常,所以我不明白为什么它不起作用。有什么想法吗?

我意识到问题的根源是文件路径的处理方式。经过多次试验和错误后,似乎正确的路径编写方法(至少在 Windows OS 中)是使用双反斜杠:"C:\Users\blablah\".