Excel中用自动运行宏提高工作效率
假设我们在Excel文件的工作表Sheet1中有一个《销售日报表》如下图:(^15050603a^)
下面我们在这个文件中建立一个Auto_Open宏,让它在文件打开后自动完成下面任务:
1. 取消工作表保护;
2. 把“当日销售”列里的数据值复制到“上日销售”一列;
3. 将日期增加一天;
4. 恢复工作表保护。
具体做法如下:
1. 在“工具”菜单上选择“宏”子菜单,打开“宏”对话框,在“宏名”一栏里键入“Auto_Open”,再点击下面的“新建”钮,进入宏编辑状态。注意不要把宏名字输错了,否则宏不会自动执行。
2. 在宏编辑状态下,把下面VBA (Visual Basic for Application) 语句输入到Auto_Open下面:
Sub Auto_Open()??
Sheets(“Sheet1”).Activate
'取消工作表保护
ActiveSheet.Unprotect
'将当日销售值拷贝到上日销售一栏
x = MsgBox(“把当日销售值拷贝到上日销售栏吗?”, vbYesNo)??
If x = vbYes Then
Range(“B5:B8”).Copy
Range(“C5”).Select
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
End If
'将日期增加一天
x = MsgBox(“把日期增加一天吗?”,vbYesNo)
If x = vbYes Then
Range(“C2”)= Range(“C2”)+ 1
End If
'重新保护工作表
ActiveSheet.Protect
End Sub
将文件保存并关闭。重新打开此文件,体验一下Auto_Open宏是如何为你工作的吧。
如果你想用Auto_Open完成其它的操作而又不知道如何用VBA语句直接建立宏,Excel的录制宏的功能可以帮助你,但是别忘了把所录制的宏取名为Auto_Open。关于录制宏的方法请参阅一般的Excel功能手册。