本人由于工作原因,经常会接收到其它人传来的Excel文件,各种版本都有,从97版本2010版,经常传来的都是被宏病毒感染了的。
但是目前各主流杀毒软件几乎都对宏病毒视而不见,目前我还没见过哪个杀毒软件能有效查杀宏病毒。有时候下载的宏病毒专杀工具也无法查杀干净。所以我经常都是手工进行处理,总结了一下手工查杀宏病毒的方法。下面我以2010版Excel为例说说怎么手动查杀。
感染了宏病毒的Excel文件,首先要在菜单的开发工具,Visual Basic 编辑器里查看代码,可以详细看到宏病毒的代码,仔细读下代码就知道它干了些什么,再根据具体情况进行查杀。
宏病毒必做的一件事情就是把自己复制到XLSTART文件夹下面去实现启动Excel时的自启动。我电脑上的路径在:C:\Program Files (x86)\Microsoft Office\Office14\xlstart。这个文件夹下面的文件要删除……
对于有的宏病毒,是用的隐藏宏,还有隐藏的sheet里面,直接通过Visual Basic 编辑器里查看代码是看不到的。这时候就可以用下面的代码在Visual Basic 编辑器里运行一下,把它们显示出来。然后再逐个删除,把病毒代码的模块移除。
Sub xianshi()
Dim n,s '2010以前版本可以不用定义
ForEach n In ActiveWorkbook.Names
n.Visible = True
Next
ForEach s In ActiveWorkbook.Sheets
s.Visible = True
Next
EndSub
有时候通过以上方法把恶意代码删除了,把隐藏的工作表也显示出来删除掉了,但是打开被感染的文件还是显示找不到macro1$A$2,每点一个工作表都弹出来,很是烦人。其实这是原来的宏病毒搞的隐藏的名称,这个在常规状态下打开名称管理器也是无法看到的,无法删除,也需要运行一下以下代码才可以显示,然后打开公式里面的名称管理器删掉就OK了,被感染的文件完美还原。
Sub DisplayNames()
Dim Na As Name
For Each Na In ThisWorkbook.Names
Na.Visible = True
Next
End Sub
好了,希望对经常碰到这类问题的朋友们有所帮助,欢迎各位关注我,我将持续为大家分享我在工作中所掌握的一些技巧和社保方面的相关政策。