My sub在一个新的Excel实例中打开一个.xlsm文件,对该文件进行更改,并保存更改。
然而,尽管正在打开的文件是.xlsm,但在工作簿上。我收到警告消息"以下功能无法保存在无宏的工作簿中…"
这对我来说没有意义,因为文件是.xlsm。什么好主意吗?
编辑:我相信我找到了问题的根源。虽然变量"path"包含C:file。xlsm wkb。路径为空。(参见调试。下面的打印的)。为什么是wkb。路径空的吗? 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
显然,将变量'MyNewPathFilename'更改为你想保存文件的任何名称,可能想要使用Path并检查它以。xlsm结尾然后将其传递给这个变量