Workbook.save – “以下function无法保存在无macros工作簿中…”

我的小组在新的Excel实例中打开一个.xlsm文件,对文件进行更改并保存更改。

但是,尽pipe正在打开的文件是.xlsm,但在workbook.save中,我收到警告消息“以下function无法保存在无macros工作簿中…”

这对我来说没有意义,因为该文件是.xlsm。 有任何想法吗?

编辑:我相信我find了问题的根源。 尽pipevariables“path”包含C:\ file.xlsm,但wkb.path是空的。 (请参阅下面的Debug.print)。 为什么wkb.path是空的?

Set XL = New Excel.Application XL.Visible = False For Each Path In XLSMPaths Set wkb = XL.Workbooks.Add(Path) Debug.Print Path ' "C:\file.xlsm" Debug.Print wkb.path ' "" Debug.print wkb.name ' "file" wkb.Save '<- alert message "The following features cannot be saved in macro-free workbooks..." Next Path 

默认情况下,.save方法会将文件保存为.xls或.xlsx(取决于您的Excel版本),您需要使用.saveas

 wkb.SaveAs Filename:=MyNewPathFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled 

很明显,将variables“MyNewPathFilename”更改为任何想要保存文件的内容,可能要取Path并检查它以.xlsm结尾,然后将其传递给此variables