在EXECL中,中了宏病毒,不用杀毒软件,用手工的办法怎么删除宏?
3个回答
展开全部
纯手工删除Excel宏病毒
方法一:通过去掉宏自动运行方式删除。
1、不要打开任何Excel文件。
2、新建一个文本文档,重命名为Book1,扩展名删掉。
3、找到这个文件夹:C:\Documents and Settings\Administrator\Application Data\Microsoft\Excel\XLSTART,如果里面有一个Book1文件,替换它。
4、然后打开染毒的Excel文件, 新建一个表,将内容复制到这个新表中。
方法二:通过程序代码方式删除。
新建Book.xls,进入其宏编辑器(Alt+F11),在ThisWorkbook中加入以下代码:
Private Sub Workbook_Open()
Dim WorkbookInfected As Boolean
Dim ad As Object
Dim strVirusName As String
Dim intVBcomponentNo As Integer
Dim i As Integer
'下面两句为病毒感染标记及病毒名因为要扫描自己,用"&"连接字符串可以避免误判自己
'代码重用时,针对不同的病毒可修改以下两句
Const Marker = "<- this is another" & " marker!"
strVirusName = "Marker"
While (1)
'If语句部分判断是否检查到自己,如果只剩下自己,则退出程序
If ActiveWorkbook.Name = Me.Name Then
ActiveWindow.ActivateNext
If ActiveWorkbook.Name = Me.Name Then GoTo EndRun
End If
'可能存在VB宏代码处的数目
intVBcomponentNo = ActiveWorkbook.VBProject.VBComponents.Count
For i = 1 To intVBcomponentNo
Set ad = ActiveWorkbook.VBProject.VBComponents.Item(i)
'是否包含特征字符串
WorkbookInfected = ad.CodeModule.Find(Marker, 1, 1, 10000, 10000)
'如果包含特征字符串,则进行去毒处理 If WorkbookInfected = True Then
'如果病毒为追加感染,请修改这一句.注意这里为全删除宏..
ad.CodeModule.DeleteLines 1, ad.CodeModule.CountOfLines
'提示信息
MsgBox ActiveWorkbook.FullName & "被" & strVirusName & _
"宏病毒感染.已去除!", vbInformation, "By:Ray.Deng"
End If
Next
'关闭打开的文件
ActiveWorkbook.Close 1
'切换至下一个文件.
ActiveWindow.ActivateNext
Wend
EndRun:
End Sub
编好后存盘,然后查找所有*.xls文件,选择全部(除了刚编的Book.xls:按住Ctrl点击),点击鼠标右键,"打开(Open)",开启文件时如果提示是否开启宏,点击不开启宏.然后,打开除了刚编的Book.xls,选择开启宏即可.
方法一:通过去掉宏自动运行方式删除。
1、不要打开任何Excel文件。
2、新建一个文本文档,重命名为Book1,扩展名删掉。
3、找到这个文件夹:C:\Documents and Settings\Administrator\Application Data\Microsoft\Excel\XLSTART,如果里面有一个Book1文件,替换它。
4、然后打开染毒的Excel文件, 新建一个表,将内容复制到这个新表中。
方法二:通过程序代码方式删除。
新建Book.xls,进入其宏编辑器(Alt+F11),在ThisWorkbook中加入以下代码:
Private Sub Workbook_Open()
Dim WorkbookInfected As Boolean
Dim ad As Object
Dim strVirusName As String
Dim intVBcomponentNo As Integer
Dim i As Integer
'下面两句为病毒感染标记及病毒名因为要扫描自己,用"&"连接字符串可以避免误判自己
'代码重用时,针对不同的病毒可修改以下两句
Const Marker = "<- this is another" & " marker!"
strVirusName = "Marker"
While (1)
'If语句部分判断是否检查到自己,如果只剩下自己,则退出程序
If ActiveWorkbook.Name = Me.Name Then
ActiveWindow.ActivateNext
If ActiveWorkbook.Name = Me.Name Then GoTo EndRun
End If
'可能存在VB宏代码处的数目
intVBcomponentNo = ActiveWorkbook.VBProject.VBComponents.Count
For i = 1 To intVBcomponentNo
Set ad = ActiveWorkbook.VBProject.VBComponents.Item(i)
'是否包含特征字符串
WorkbookInfected = ad.CodeModule.Find(Marker, 1, 1, 10000, 10000)
'如果包含特征字符串,则进行去毒处理 If WorkbookInfected = True Then
'如果病毒为追加感染,请修改这一句.注意这里为全删除宏..
ad.CodeModule.DeleteLines 1, ad.CodeModule.CountOfLines
'提示信息
MsgBox ActiveWorkbook.FullName & "被" & strVirusName & _
"宏病毒感染.已去除!", vbInformation, "By:Ray.Deng"
End If
Next
'关闭打开的文件
ActiveWorkbook.Close 1
'切换至下一个文件.
ActiveWindow.ActivateNext
Wend
EndRun:
End Sub
编好后存盘,然后查找所有*.xls文件,选择全部(除了刚编的Book.xls:按住Ctrl点击),点击鼠标右键,"打开(Open)",开启文件时如果提示是否开启宏,点击不开启宏.然后,打开除了刚编的Book.xls,选择开启宏即可.
金山毒霸
2024-10-31 广告
2024-10-31 广告
DirectX是什么?为什么启动游戏或软件的时候,电脑会报错“DirectX丢失或损坏”,应该怎么下载、安装呢?首先,DirectX(Direct eXtension,简称DX)是由微软公司开发的用于多媒体编程的接口套件,是游戏和软件运营的...
点击进入详情页
本回答由金山毒霸提供
展开全部
上网下载“宏病毒专杀软件”即可,就几百K大小。
如果要自己杀,只能一个个文件删:
1.打开怀疑中毒的文件,右键点击工作表,选择“查看代码”;
2.在左上角工程视图如果看到其他奇怪的宏,点右键把它删掉,删完退出;
3.重新打开这个文档,重复第1步,如果发那些奇怪的宏不在就是成功了,否则就是失败,只能用杀毒软件
如果要自己杀,只能一个个文件删:
1.打开怀疑中毒的文件,右键点击工作表,选择“查看代码”;
2.在左上角工程视图如果看到其他奇怪的宏,点右键把它删掉,删完退出;
3.重新打开这个文档,重复第1步,如果发那些奇怪的宏不在就是成功了,否则就是失败,只能用杀毒软件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用金山宏病毒专杀工具
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |