表格提示无法找到macro1怎么办?

发布时间:2021-05-26 Excel技巧

1、首先打开Excel2010,就会出现“找不到macro1!$A$2”问题,这是因为隐含在隐藏的名称中没有删除干净

 

2、在Excel界面上按Alt+F11,进入VBE窗口,在左边“工程”窗口中点选出问题的那个工作簿,然后插入一个模块

 

3、将如下代码复制到模块中:

Sub DisplayNames()

Dim Na As Name

For Each Na In ThisWorkbook.Names

Na.Visible = True

Next

End Sub

然后点“运行”按钮运行宏代码,

 

4、回到EXCEL界面,选择“公式”--“名称管理器”

 

5、在跳出的窗口中就能看到隐藏的名称,把他删除就可以了。

 

方法二:

在工作表内点击“插入(I) → 名称(N) → 定义(D)…”。

 

显示出如下定义窗口,看起来似乎一切正常,实际上根据网上的说明,这里面有隐藏的定义名称。

 

点击“alt + F11”,调出VBA编辑器,参照下图点击“插入(I) → 模块(M)”。

 

然后在右侧窗口中输入如下代码:

Sub test()

Dim sh As Worksheet

For Each sh In ThisWorkbook.Sheets

sh.Visible = xlSheetVisible

Next

Dim nm As Name

For Each nm In ThisWorkbook.Names

nm.Visible = True

Next

End Sub

 

先保存一下,然后依次点击“运行(R) → 运行宏 F5”以运行这段代码,保存之后关闭VBA编辑器。

 

回到主界面后,点击“alt + F3”,看到定义名称的栏目中果然多出了“Auto_Activate”一项,果断删除,然后在其他工作表中依次执行该删除操作。最后保存文档,退出并重新打开,果然一切OK。

 

虽然问题解决了,但是还是有个疑惑,就是本病毒很明显是“宏”病毒,但在打开文档的时候并未出现有关运行“宏”的提示。后再上网查询,有人解释其原因可能是该文档以前的确是被“宏”病毒感染过,后又被所谓专杀工具处理过,病毒模块清除了,但是病毒原来为每个表都添加工作表级别的名称“Auto_Activate”,并将引用都指向宏表“Macro1”的A2单元格,这个是专杀工具没有处理的。

确认杀毒结束后,刚才添加的那个模块就可以删掉了,方法仍然是点击“alt + F11”,调出VBA编辑器,右键点击刚才建立的模块,选择“移除 模块1(R)”。