You need to enable JavaScript to run this app. 如何让Excel xltm模板生成文件的文件→另存为界面默认xlsm格式
优惠活动
大模型
产品
解决方案
定价
更多

如何让Excel xltm模板生成文件的文件→另存为界面默认xlsm格式

解决方案

以下是可同时适配所有另存为入口的VBA代码,直接替换你原有代码即可:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ' 仅处理首次另存为(文件未保存过、无存储路径)的场景
    If SaveAsUI And ThisWorkbook.Path = vbNullString Then
        ' 拦截Excel默认的所有另存为行为,包括新版【文件→另存为】入口的界面
        Cancel = True
        
        ' 调用自定义另存为对话框,强制默认使用xlsm格式
        With Application.FileDialog(msoFileDialogSaveAs)
            ' 手动指定宏启用工作簿为唯一默认格式,适配所有语言版本Office
            .Filters.Clear
            .Filters.Add "Excel 宏启用工作簿 (*.xlsm)", "*.xlsm", 1
            If .Show = -1 Then
                ' 执行保存,强制锁定文件格式为xlsm
                ThisWorkbook.SaveAs _
                    Filename:=.SelectedItems(1), _
                    FileFormat:=xlOpenXMLWorkbookMacroEnabled ' 等价于格式编号52
            End If
        End With
    End If
End Sub

注意事项

  • 代码必须放在Excel的ThisWorkbook模块中才会生效
  • 核心逻辑是通过Cancel = True直接屏蔽Excel自带的所有另存为界面(包括你遇到的新版默认选xlsx的界面),统一走自定义的对话框,从根源避免默认格式错误的问题
  • 现有判断逻辑仅限制首次保存必须用xlsm格式,文件成功保存到本地后,后续的保存、另存为操作会恢复正常逻辑,不影响用户后续操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 18:57:03