Excel 4.0宏通过按钮触发失效但VBA开发工具窗口可正常运行问题咨询
问题描述
电子表格中已经正常运行多年的宏,最近无法通过按钮触发执行,但在VBA开发工具窗口中仍可正常运行。
使用普通形状(矩形)作为按钮,并为其分配了宏(从“ThisWorkbook”列表中选择)。
已确认排除以下常见问题:
- 文件格式仍为.xlsm
- 宏功能处于启用状态
- 运行环境和此前一致,为Windows 10系统、Office 365版本
- 近期没有安装Windows更新
- 仅打开了这一个文件
- 已尝试重启笔记本和Excel软件
- 未使用Active-X控件
- 已分别尝试表单控件按钮和普通形状按钮,均无法触发
- 问题与VBA代码本身无关
用于测试的代码如下,在VBA界面点击运行可正常执行,但无法通过工作表中分配了该宏的按钮触发,代码存放在普通VBA代码模块中,并非VBA界面的“ThisWorkbook”区域:
Sub button_not_working() MsgBox "button_not_working" End Sub
通过右键点击形状来分配宏,“分配宏”弹窗中可选的宏列表仅显示“此工作簿”中的宏,点击形状运行分配的宏时会弹出错误提示。
故障修复方案
- 补全宏分配的完整路径
右键触发失效的形状/按钮重新分配宏,不要直接从下拉列表选择,手动在宏名输入框补全模块前缀,例如测试宏存放在Module1中,就输入Module1.button_not_working后确认,再测试按钮能否触发。 - 重命名工作簿文件
如果xlsm文件名包含空格、中文、特殊符号(如括号、&、%等),将文件名修改为纯英文无特殊字符的格式,重新打开文件测试。 - 调整DDE设置
打开Excel的【选项】-【高级】-【常规】分组,取消勾选「忽略使用动态数据交换(DDE)的其他应用程序」,确定后重启Excel测试。 - 修复受损VBA工程
打开VBA编辑器,右键点击当前工作簿的VBA工程,导出所有自定义模块、工作表和ThisWorkbook中的代码保存到本地;新建空白xlsm文件,将导出的代码全部导入后保存,再测试按钮功能。 - 添加受信任位置
打开Excel【信任中心】-【信任中心设置】-【受信任位置】,将当前文件存放的文件夹添加到受信任列表,重启文件后测试。
内容的提问来源于stack exchange,提问作者epe
相关产品推荐
相关产品推荐

