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

Say*_*ota 3 excel vba save xlsm

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

但是,尽管正在打开的文件是.xlsm,但在workbook.save上,我收到警告消息"以下功能无法保存在无宏工作簿......"

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

编辑:我相信我找到了问题的根源.虽然变量"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
Run Code Online (Sandbox Code Playgroud)

Dar*_*n H 7

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

wkb.SaveAs Filename:=MyNewPathFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Run Code Online (Sandbox Code Playgroud)

显然将变量'MyNewPathFilename'更改为您要保存文件的任何内容,可能需要获取Path并检查它以.xlsm结尾然后将其传递给此变量