Excel 中的宏名称正在更改

Excel 中的宏名称正在更改

我正在 Excel 电子表格中创建 VBA 宏。我注意到有时(通常在保存电子表格并重新打开后)一个或多个宏名称会从 更改为sheet1.macronamespreadsheetname.xls!macroname这不是有效的宏名称,因此我无法再运行它。

我可以通过删除所有宏、保存结果、再次粘贴宏并再次保存来解决问题,但不能指望普通用户这样做。

有人知道是什么原因造成的吗?我该怎么做才能防止这种情况发生?

编辑更多细节

当我启动电子表格并显示宏对话框时,一个(有时是多个)宏的名称似乎从 更改为sheet1.macronamespreadsheet.xls!macroname尝试通过双击运行此宏会产生错误消息“宏名称无效”。关闭错误消息框并再次双击会产生错误消息“引用无效”。后续尝试也会出现同样的情况。

sheet1.othermacro通过双击调用另一个宏可以成功,并关闭宏对话框。重新显示时,第一个宏的名称已改回sheet1.macroname。我想这确实解决了问题。

答案1

我偶然发现了解决方案。

仅当模块名称与宏名称相同时才会出现此问题。因此模块必须以不同的名称命名。就是这样!

答案2

我怀疑宏的名称实际上并没有改变:如果在打开多个工作簿的情况下从 Excel 打开“宏”对话框,则存储在当前活动工作簿中的宏将显示为MarcoName。但是,存储在工作簿中的宏不是活动的显示为WorkbookName.xls!MacroName。也就是说,你确定宏名称正在改变吗?

当您说无法再运行宏时,能否具体说明具体发生了什么?什么都没有?错误消息?

另外,您正在录制这些宏还是自己编写的?

相关内容