3

我的 sub 在新的 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
4

1 回答 1

7

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

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

显然将变量“MyNewPathFilename”更改为您想要将文件保存为的任何内容,可能想要获取路径并检查它以 .xlsm 结尾,然后将其传递给该变量

于 2015-07-24T05:25:35.550 回答