WPS宏录制后无法保存或运行,提示“宏已被禁用”,通常因安全设置默认阻止宏执行所致。WPS Office(尤其2019及更新版本)默认将宏安全级别设为“高”或“禁用所有宏”,导致录制的VBA宏被自动禁用、不显示在【开发工具】→【宏】列表中,甚至保存时提示“宏未保存成功”。此外,若文档为非启用宏的格式(如.docx而非.dotm/.wps),或未以管理员权限运行WPS,也会触发该提示。解决关键在于:① 进入【文件】→【选项】→【宏设置】,将安全级别调至“中”并勾选“信任对VBA工程对象模型的访问”;② 确保文档另存为支持宏的格式(.wps或.wpt);③ 首次启用时需手动点击“启用内容”。注意:仅对可信文档启用宏,避免安全风险。
1条回答 默认 最新
狐狸晨曦 2026-02-28 21:45关注```html一、现象层:宏录制后“消失”——表象与典型报错
用户完成WPS宏录制后,点击【开发工具】→【宏】,列表为空;保存文档时弹出“宏未保存成功”;运行时提示“宏已被禁用”。此非代码错误,而是WPS在加载/执行阶段主动拦截所致。该现象在WPS Office 2019、2023及WPS AI版中高频复现,尤其在企业默认策略锁死的终端上几乎100%触发。
二、机制层:安全沙箱如何拦截VBA——WPS宏执行生命周期解析
flowchart TD A[启动WPS] --> B{读取宏安全策略} B -->|高/禁用所有宏| C[跳过VBA工程加载] B -->|中| D[加载VBAProject但标记为“未启用”] D --> E[打开文档时检查扩展名] E -->|非.wps/.wpt/.dotm| F[拒绝注入模块] E -->|支持宏格式| G[等待用户显式授权] G --> H[点击“启用内容” → 解锁Runtime]三、配置层:三重安全闸门——宏设置关键参数详解
配置项 默认值(WPS 2023) 推荐值 影响范围 宏安全性级别 高(禁用所有宏,不通知) 中(禁用所有宏,但提示启用) 全局生效,重启生效 信任对VBA工程对象模型的访问 未勾选 ✅ 勾选 影响 Application.VBE、ThisDocument.VBProject等底层API调用信任来自Microsoft的内置宏 启用 保持启用 仅影响WPS自身组件,与用户宏无关 四、格式层:文档容器即权限载体——宏就绪文件格式对照表
- .wps:WPS原生宏文档格式,支持嵌入VBA工程,等效于Excel的.xlsm;
- .wpt:WPS模板格式,可预置宏并作为新建文档基础;
- .docx/.xlsx:严格禁止VBA存储,即使强行写入也会在下次打开时被剥离;
- .dotm:Office兼容模板,WPS可读但不推荐——存在签名验证失败风险。
五、权限层:UAC与进程级信任链——为什么管理员运行是隐性前提
当WPS以标准用户权限运行时,其COM接口对
VBProject的写入操作会被Windows UAC拦截(尤其在域控环境)。实测表明:在启用了Group Policy “User Account Control: Run all administrators in Admin Approval Mode”的机器上,未以管理员身份启动WPS将导致VBComponents.Add抛出错误1004(Application-defined or object-defined error),且无明确日志提示。建议通过快捷方式属性→“高级”→勾选“以管理员身份运行”固化权限。六、实践层:端到端排障流程——从录制到稳定运行的7步法
- 关闭所有WPS进程,确保无残留VBA宿主;
- 右键WPS快捷方式→“以管理员身份运行”;
- 【文件】→【选项】→【宏设置】→设为“中”,勾选“信任对VBA工程对象模型的访问”;
- 新建空白文档→【开发工具】→【录制宏】→执行简单操作(如输入文字)→停止;
- 【文件】→【另存为】→选择“WPS文字文档(*.wps)”格式;
- 关闭并重新打开该.wps文件→顶部黄色栏点击“启用内容”;
- 再次进入【开发工具】→【宏】→确认宏名称可见,点击【运行】验证。
七、安全层:最小权限原则下的企业级部署建议
面向IT运维团队:切勿全局设为“低”安全级别。推荐采用“条件信任”策略——通过WPS管理后台(需企业版许可)下发白名单策略,仅允许签署SHA-256证书且发布者为内部CA的.wps文件自动启用宏;同时结合EDR工具监控
```vbe6.dll和msvbvm60.dll的异常加载行为。此举既满足自动化办公需求,又符合等保2.0“可信验证”要求。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报