在日常工作中,我們經常需要在每次打開同一個Excel文件時都進行一些例行的操作,如改變表格的格式、更新報表日期、打印文件、對工作表進行保護或取消保護等等。Excel的自動運行宏“Auto_Open”可在文件打開后立即完成這些例行的操作任務,既快速又準確。
假設我們在Excel文件的工作表Sheet1中有一個《銷售日報表》如下圖:(圖)
下面我們在這個文件中建立一個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功能手冊。