多语言展示
当前在线:647今日阅读:86今日分享:14

该工作簿中含有一种既无法被禁用的宏..解决方法

这个错误的完整提示是[打开excel时,出现一个提示框:一个黄感叹号:该工作簿中含有一种既无法被禁用又无法被签署的宏(Microsoft Excel 4.0版本宏)。因此,该工作簿无法在“高安全级”下打开。如果要打开此工作簿,请单击“工具”菜单上的“宏”,然后单击“安全性”,再单击“安全性”对话框中的“中” 点击确定后就打不开该文档。 将安全性设成中及以下,打开该文档时会出现一个警告信息,其下有三个按钮“禁用宏”“启用宏”“取消”前两者按任一个实际的作用都一样,也就是说禁用宏实际上没起作用。打开该文档后,会自动生成一个空白的xls文档。虽然按提示操作:工具——宏——安全性——选择中,只能临时解决,但是始终没有完全解决问题。]出现类似'该工作簿中含有一种既无法被禁用又无法被签署的宏(Microsoft Excel 4.0版本宏)'的提示,我想应该都是中了宏病毒,杀完excel宏病毒后就出现烦人提示,我碰到是之前中了k4.xls的病毒后出现的,因为用过360杀毒,office专杀,所以病毒的代码应该失效了但是病毒的自我保护机制还在,网上搜索了后以下这个是有效的方法解决方法先从工具-宏-Visual Basic编辑器,右键点击任一工作表(就是sheet那些),点击“查看代码”,把下面代码粘贴到代码窗口:Sub test()Dim sh As WorksheetFor Each sh In Excel4MacroSheetsIf Not sh.Visible Then sh.Visible = 1NextEnd Sub将光标定位到代码段内,按F5运行代码。然后回到工作表的界面(Visual Basic编辑器可以关掉了,上面输入的代码也可以删除,不需要了),就可以看到被隐藏的工作表(注意,通过VBA代码隐藏的工作表是不能通过菜单中的“格式”-工作表-“取消隐藏”来解除隐藏状态的),在我这里出现的原先隐藏工作表是Macro1(如下图),这是一个保护宏的机制,如果禁用宏将不能打开excel文档,被病毒利用来保护自己。删除此工作表,但事情并没有结束,然后切换到该excel工作簿其它每一个正常的工作表时就会出现“找不到#REF!$A$2”,虽然不影响具体操作,但很烦人,原来这个病毒为每个表都添加工作表级别的名称“Auto_Activate(这个名称可能不同的病毒会创建不同的名称根据病毒隐藏的那个表格Macro1对照一下)”,并将引用都指向宏表“Macro1”的A2单元格,“Auto_Activate”是一个自动宏,表被激活时自动执行,(病毒代码: wb.Names.Add sht.Name & '!Auto_Activate', '=Macro1!$A$2', False ......),而且这个工作表级别的名称是隐藏的,所以想在菜单中的“插入”-“名称”-“定义”中发现它是不可能的。不过虽然是隐藏的,但删除还是可以的,进入 “插入”-“名称”-“定义”, 在最上面的框中输入要删除的名称,如本例中的Auto_Activate,然后点击删除,就把这个隐藏的工作表级别名称删除掉了,整个excel工作簿中所有的工作表都要这样删除一遍,这样才能把这个引用宏的影响彻底消除。顺便说一下,如果打开excel文档出现找不到宏的提示,也可以到这里来查查看是否有什么名称要删除。
推荐信息