原創(chuàng)作者: 盧子 轉(zhuǎn)自:Excel不加班
VBA是Excel中最難的,也是最智能的功能。很多人對他又愛又恨,愛是因?yàn)橐绘I就搞定工作,恨是因?yàn)樘y了一大堆代碼看了頭痛。
其實(shí),學(xué)VBA是有方法的,很多代碼都不是手寫的,而是通過錄制宏得到。今天,盧子帶你重新認(rèn)識VBA。
1.生成12個工作表
普通操作的話,是直接點(diǎn)這個 ,就生成了一個新工作表,連續(xù)點(diǎn)11次。
而用VBA的話,可以先通過錄制一個宏,生成一個錄制的宏過程,再通過適用循環(huán)方法,生成10個新表。
Step 01 點(diǎn)錄制宏,再新建一個工作表,停止錄制宏。
Step 02 點(diǎn)工作表,右鍵查看代碼,在模塊中就可以看到剛剛錄制的宏代碼。
Sheets.Add After:=ActiveSheet
Step 03 添加一個循環(huán)語句For Next,1 to 10,就是循環(huán)10次,前面有2個工作表再加10次就是12個工作表。
Sub 宏4()
For i = 1 To 10
Sheets.Add After:=ActiveSheet
Next
End Sub
Step 04 點(diǎn)綠色的運(yùn)行按鈕,這樣瞬間就搞定了。
2.刪除工作表,只保留1個
Step 01 同樣道理,錄制一個刪除工作表的宏。
Step 02 點(diǎn)工作表,右鍵查看代碼,在模塊中就可以看到剛剛錄制的宏代碼。
Step 03 現(xiàn)在還需要刪除2到11的工作表,也需要添加循環(huán)語句,那些無關(guān)的代碼可以刪除,并不影響效果。
Sub 宏5()
For i = 2 To 11
ActiveWindow.SelectedSheets.Delete
Next
End Sub
這樣本來就可以,不過還有一個問題,就是在刪除工作表的時(shí)候會彈出一個警告對話框。用技巧的話只能忍受,但用VBA可以忽略掉警告對話框,可以再增加一個語句。
Sub 宏5()
Application.DisplayAlerts = False '忽略運(yùn)行過程中出現(xiàn)的警告
For i = 2 To 11
ActiveWindow.SelectedSheets.Delete
Next
End Sub
Step 04 運(yùn)行代碼以后,就只剩下一個工作表。
當(dāng)操作的宏比較多的時(shí)候,需要對宏進(jìn)行重命名,要不然可能會忘了宏的作用。修改名字以后,這樣會更加清晰。
你在網(wǎng)上看到的模板,都是點(diǎn)一下按鈕就搞定,其實(shí),我們自己也可以插入一個按鈕來執(zhí)行代碼。
插入一個形狀。
指定宏
修改形狀的名稱,并運(yùn)行代碼。
使用VBA要另存為啟用宏的工作簿。
最后再總結(jié)一下,VBA的步驟都基本一樣,先錄制宏,然后修改宏代碼,再插入一個形狀來運(yùn)行代碼,并另存為啟用宏的工作簿。
如果你對VBA有興趣,后面還會繼續(xù)深入說明。
比如根據(jù)總表的內(nèi)容生成工作表或者根據(jù)工作表生成目錄等等。