原創作者: 盧子 轉自:EXCEL不加班
真的沒騙你,點起來超爽,做完了2個按鈕,我都點了幾十次。
點一下工資表就變成工資條。
再點一下,工資條就變成工資表。
要用VBA實現這2個功能,真的很簡單,隻要你懂得最基礎的複制粘貼,插入删除等功能即可。
其實,VBA就是将你當初學基礎操作的過程,再重新來一遍而已。不要說什麼不會英語,學不會之類,壓根兒就跟英語無關,我也不會英語。
工資條,其實就是将第一行的标題複制,插入到3、5、7等奇數行,對吧。
Step 01 錄制一個宏,将第一行的标題複制,插入到第3行。
Step 02 點VB進入後台,再點模塊,就可以看到剛剛錄制的宏。
Step 03 現在已經實現了在第3行插入标題,下面要實現在第5行插入标題。将A3改成A5,點綠色運行按鈕。
接着是7、9、11……如果一次次改,那就體現不了VBA的優越性了,前面已經提過,可以借助循環語句。
Sub 工資條()
For i = 1 To 18
Rows("1:1").Select
Selection.Copy
Range("A" & i * 2 1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
現在是19個人,而第一個人有标題,也就是需要操作18次。i * 2 1就是獲取數字3、5、7……
寫代碼的時候,養成一個好習慣,就是定義變量,最終代碼就出來了。
Sub 工資條()
Dim i As Integer
For i = 1 To 18
Rows("1:1").Select
Selection.Copy
Range("A" & i * 2 1).Select
Selection.Insert Shift:=xlDown
Next
End Sub
Step 04 将原來手工插入的标題删除掉,運行代碼,即可生成工資條。
不難吧。
現在如何将工資條複原成工資表,也就是将3、5、7……行删除掉。
同理,錄制宏,改代碼。
Step 01 錄制一個宏,選擇A3,删除整行。
Step 02 點VB進入後台,再點模塊,就可以看到剛剛錄制的宏。
Step 03 有了前面的基礎,現在修改代碼就變得簡單,将工資條修改的部分全部照搬過來。
剛剛錄制宏的時候是從上删除行,删除後 ,你會發現标題行錯位了,現在并不是3、5、7……行。
記住,删除行跟插入行有所不同,插入行是從上面往下插入,而删除行要從下面往上删除。
現在是從18倒數到1,Step -1就是步長-1。
Sub 工資表()
Dim i As Integer
For i = 18 To 1 Step -1
Range("A" & i * 2 1).Select
Selection.EntireRow.Delete
Next
End Sub
Step 04 将原來手工删除的标題恢複,運行代碼,即可生成工資表。
最後,插入按鈕來執行代碼,會看起來更高大上。
不要老是害怕學不會,隻要你知道循環語句,會錄制宏就可以解決掉很多問題了。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!