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

Excel VBA报错:保存无宏工作簿触发Run-Time error '1004'

解决Excel VBA保存无宏工作簿的1004错误

错误原因

之前正常运行的代码突然报错,大概率是当前工作簿里残留了VB项目组件或XLM旧版宏表,加上系统更新后Excel的格式校验更严格,导致直接保存无宏格式时触发限制。

排查&手动修复步骤

  • 检查XLM宏表:按Ctrl+F11打开宏表编辑器,若看到非必要的宏表,直接删除。
  • 清理VB项目残留:按Alt+F11打开VBA编辑器,在工程资源管理器里右键VBAProject,选择查看对象浏览器,检查是否有隐藏模块/类模块,取消隐藏后删除无用的组件。
  • 移除隐藏控件:切换到「开发工具」选项卡,开启「设计模式」,检查工作表里的隐藏ActiveX控件,删除不需要的。

代码修复方案

如果不想每次手动清理,改成复制有用内容到新工作簿再保存,彻底规避原工作簿的VB残留问题:

Dim newWB As Workbook
Dim ws As Worksheet

' 创建空白无宏工作簿
Set newWB = Workbooks.Add(xlWBATWorksheet)

' 复制原工作簿的可见工作表到新工作簿
For Each ws In ActiveWorkbook.Worksheets
    If ws.Visible = xlSheetVisible Then
        ws.Copy After:=newWB.Sheets(newWB.Sheets.Count)
    End If
Next ws

' 删除新工作簿默认的空白表
Application.DisplayAlerts = False
newWB.Sheets(1).Delete
Application.DisplayAlerts = True

' 保存新工作簿
strFile = ActiveWorkbook.Path & "\BorstDailyKPI.xlsx"
newWB.SaveAs Filename:=strFile, FileFormat:=xlOpenXMLWorkbook

' 可选:关闭新工作簿
newWB.Close SaveChanges:=False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:15:04