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)”。
在接下来的窗口里选择“否(N)”即可。