You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Word VBA批量升级DOCX文件至最新版本?

解决DOCX文件版本批量升级问题

你原来的代码未生效,核心原因是wdFormatXMLDocument对应Word 2007版本的DOCX格式,并未取消向后兼容性。要批量升级至最新Word版本,需调整文件格式常量并明确关闭兼容性模式,以下是修正后的实现方案:

修正后的VBA代码

Sub SaveAllDOCXToLatestVersion()
    Dim doc As Document
    For Each doc In Application.Documents
        ' 仅处理DOCX格式文件
        If doc.FileFormat = wdFormatXMLDocument Or doc.FileFormat = wdFormatXMLDocumentMacroEnabled Then
            Dim savePath As String
            ' 生成带"_latest"后缀的新文件,避免覆盖原文件;如需直接覆盖,改为doc.FullName即可
            savePath = doc.Path & "\" & Replace(doc.Name, ".docx", "_latest.docx")
            
            ' 保存为最新版本DOCX,自动取消向后兼容性
            doc.SaveAs2 _
                FileName:=savePath, _
                FileFormat:=wdFormatXMLDocumentDefault, ' 对应Word 2016+标准DOCX格式
                CompatibilityMode:=wdCurrent ' 强制使用当前Word的兼容性模式
            
            ' 额外确保兼容性设置生效
            doc.CompatibilityMode = wdCurrent
            doc.Save
        End If
    Next doc
    MsgBox "所有DOCX文件已升级至最新版本!"
End Sub

关键细节说明

  • wdFormatXMLDocumentDefault:该常量对应Word 2016及后续版本的标准DOCX格式,会自动禁用"保持向后兼容性"选项。
  • CompatibilityMode:=wdCurrent:强制文档采用当前Word版本的兼容性规则,彻底移除旧版本功能限制。
  • 代码默认生成新文件避免覆盖原文件,若需直接替换原文件,修改savePath为doc.FullName即可(建议先备份)。

非VBA替代方案

如果不想用宏,可通过Word手动批量操作:

  • 打开所有需要升级的DOCX文件。
  • 按住Ctrl键全选任务栏上的所有Word窗口。
  • 依次执行「文件」→「另存为」→ 选择DOCX格式,取消勾选"保持向后兼容性"后保存。

内容的提问来源于stack exchange,提问作者Sparrow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:36:15