這是VBA 的經典案例:自動製作工資條。
這也是一個非常實用的案例,掌握了思路,在很多類似場景都能應用,比如隔行插入空行等等。
案例:
以下是原始的工作表,要做成工資條,需要隔行插入表頭,列印後剪下來。
如何能點一下按鍵就自動插入所有表頭?像圖二那樣?
解決方案:
我們剛開始教 VBA 的時候說過,初學者可以先錄製宏,再按需求修改 VBA 程式碼,快速完成程式開發,今天就用這個思路。
3. 選中表頭行 -->複製-->將滑鼠移至需要插入表頭的行-->右鍵單擊“插入複製的單元格”
4. 停止錄製宏
6. 在彈出的指定宏視窗中選擇我們剛才建立的“工資條”宏 --> 單擊“確定”
10. 在開啟的 VBE 程式碼窗口裡,就可以看到剛才錄製的宏程式碼
Sub 工資條()
"
" 工資條 Macro
Rows("4:4").Select "選中第四行
Selection.Copy "複製所選區域
Rows("6:6").Select "選中第六行
Selection.Insert Shift:=xlDown "插入複製的區域
End Sub
11. 我們曾經說過,錄製宏只能實現一個動作,無法迴圈呼叫。
12. 在程式碼中加入部分修改,就完成了
Dim i As Long
For i = 6 To 200 Step 2
Rows(i).Select
Next
這是VBA 的經典案例:自動製作工資條。
這也是一個非常實用的案例,掌握了思路,在很多類似場景都能應用,比如隔行插入空行等等。
案例:
以下是原始的工作表,要做成工資條,需要隔行插入表頭,列印後剪下來。
如何能點一下按鍵就自動插入所有表頭?像圖二那樣?
解決方案:
我們剛開始教 VBA 的時候說過,初學者可以先錄製宏,再按需求修改 VBA 程式碼,快速完成程式開發,今天就用這個思路。
3. 選中表頭行 -->複製-->將滑鼠移至需要插入表頭的行-->右鍵單擊“插入複製的單元格”
4. 停止錄製宏
6. 在彈出的指定宏視窗中選擇我們剛才建立的“工資條”宏 --> 單擊“確定”
10. 在開啟的 VBE 程式碼窗口裡,就可以看到剛才錄製的宏程式碼
我給每一句程式碼後面加入了註釋VBA 的註釋是以 " 開頭,顏色為綠色程式碼非常簡單,就是剛才錄製的每一步動作的語言描述Sub 工資條()
"
" 工資條 Macro
"
Rows("4:4").Select "選中第四行
Selection.Copy "複製所選區域
Rows("6:6").Select "選中第六行
Selection.Insert Shift:=xlDown "插入複製的區域
End Sub
11. 我們曾經說過,錄製宏只能實現一個動作,無法迴圈呼叫。
12. 在程式碼中加入部分修改,就完成了
Dim i As Long:宣告變數 i,型別為 Long其實以本例的資料量來說,定義為 Integer 也足夠了變數的宣告我們下次會細說For i = 6 To 200 Step 2:i 從 6 開始,到 200 結束,步長為 2因為我們第一次要在第 6 行插入,所以從 6 開始表格總共 100 行不到,隔行插入表頭後,行數會翻倍,所以總數定為 200步長 2 相當於 i=i+2,即隔行執行Rows(i).Select:括號裡改用變數 i,即每次選擇第 i 行配合 for 語句實現迴圈效果Sub 工資條()
"
" 工資條 Macro
"
Dim i As Long
For i = 6 To 200 Step 2
Rows("4:4").Select "選中第四行
Selection.Copy "複製所選區域
Rows(i).Select
Selection.Insert Shift:=xlDown "插入複製的區域
Next
End Sub