Excel宏前端界面不可见、快速访问栏宏运行异常问题求助
Excel 个人宏工作簿(PERSONAL.XLSB)宏异常修复方案
现象对应逻辑
- 错误
Unexpected Error (35005)属于VBA对象加载失败,对应目标宏所属模块损坏、模块/过程名冲突或权限缓存异常 - 前端宏列表全空、原有快速访问按钮仍可运行:Excel宏枚举接口依赖临时安全缓存,缓存失效后会出现列表为空的情况;而快速访问按钮直接绑定宏的完整调用路径,不走枚举逻辑,因此不受影响
分步修复操作(按优先级排序)
1. 解除PERSONAL.XLSB的系统阻止
- 完全关闭所有Excel进程
- 打开资源管理器,在地址栏输入
%AppData%\Microsoft\Excel\XLSTART,回车进入个人宏工作簿存储目录 - 找到
PERSONAL.XLSB,右键选择「属性」,如果窗口底部出现「解除锁定」选项,勾选后点击确定
2. 修复损坏的目标宏模块
- 打开任意Excel文件,按
Alt+F11调出VBA编辑器 - 左侧工程资源管理器展开
PERSONAL.XLSB,定位到名为UnhideAllSheets的模块 - 右键模块选择「导出文件」,将模块备份为
.bas格式存到本地 - 右键模块选择「移除」,确认不保存
- 点击VBE菜单栏「文件-导入文件」,选择刚才导出的
.bas备份文件 - 直接在VBE内运行该宏,验证是否恢复正常
- 打开任意Excel文件,按
3. 重置宏安全枚举缓存
- 按
Win+R调出运行窗口,输入对应版本的Office注册表重置命令(Office 2016/365对应:reg add HKCU\Software\Microsoft\Office\16.0\Excel\Security /v AccessVBOM /t REG_DWORD /d 1 /f,Office 2013对应将版本号改为15.0,2010对应14.0),回车执行 - 重启Excel,打开「开发工具-宏」,确认宏列表是否恢复
- 按
4. 重建损坏的PERSONAL.XLSB
上述操作无效时执行:- 关闭所有Excel,进入
%AppData%\Microsoft\Excel\XLSTART,将原有PERSONAL.XLSB重命名为PERSONAL_OLD.XLSB做备份 - 新建空白Excel,录制任意1秒空宏,保存时选择「个人宏工作簿」,自动生成全新的
PERSONAL.XLSB - 按
Alt+F11,将旧备份文件内所有可用模块逐个导出、导入到新的个人宏工作簿 - 重新绑定快速访问工具栏的宏按钮
- 关闭所有Excel,进入
注意:当前报错路径
PERSONAL.XLSB!UnhideAllSheets.UnhideAllSheets属于模块名与内部过程名完全同名的易冲突写法,建议修复时将模块名改为modUnhideSheets,同时更新快速访问按钮的宏调用路径,避免后续复现同类错误。
内容的提问来源于stack exchange,提问作者Wm. David Shepherd
相关产品推荐
相关产品推荐

