Workbook.save - "以下功能无法保存在无宏工作簿中......"

时间:2015-07-24 05:21:22

标签: excel vba save xlsm

我的子程序在新的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

1 个答案:

答案 0 :(得分:7)

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

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

显然改变了变量&#39; MyNewPathFilename&#39;对于你想要保存文件的任何内容,可能想要获取Path并检查它以.xlsm结尾然后将其传递给此变量