我的子程序在新的Excel实例中打开一个.xlsm文件,对文件进行更改,并保存更改。
然而,尽管正在打开的文件是.xlsm,但在workbook.save上我收到警告消息"以下功能无法保存在无宏工作簿中......"
这对我没有意义,因为该文件是.xlsm。有什么想法吗?
编辑:我相信我找到了问题的根源。虽然变量"路径"包含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
答案 0 :(得分:7)
默认情况下,.save方法会将文件保存为.xls或.xlsx(取决于你的excel版本),你需要强制使用.saveas
wkb.SaveAs Filename:=MyNewPathFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
显然改变了变量&#39; MyNewPathFilename&#39;对于你想要保存文件的任何内容,可能想要获取Path并检查它以.xlsm结尾然后将其传递给此变量