您現在的位置是:首頁 > 棋牌
Excel VBA(5) – 一鍵製作工資條
- 由 Excel學習世界 發表于 棋牌
- 2023-01-30
工資表如何自動生成工資條
今天教一個 VBA 的經典案例:自動製作工資條。
這也是一個非常實用的案例,掌握了思路,在很多類似場景都能應用,比如隔行插入空行等等。
案例:
以下是原始的工作表,要做成工資條,需要隔行插入表頭,列印後剪下來。
如何能點一下按鍵就自動插入所有表頭?像圖二那樣?
解決方案:
我們剛開始教 VBA 的時候說過,初學者可以先錄製宏,再按需求修改 VBA 程式碼,快速完成程式開發,今天就用這個思路。
1。 點選選單欄的“開發工具”——>“宏”——>“錄製宏”
2。 給宏取名“工資條”——>點選“確定”
3。 選中表頭行 ——>複製——>將滑鼠移至需要插入表頭的行——>右鍵單擊“插入複製的單元格”
4。 停止錄製宏
5。 點選“開發工具”——>“插入”——>“按鈕”
6。 在彈出的指定宏視窗中選擇我們剛才建立的“工資條”宏 ——> 單擊“確定”
7。 將按鈕名稱改為“製作工資條”
8。 選中按鈕 ——>右鍵單擊“指定宏”
9。 在彈出的視窗中選擇“工資條”——>點選“編輯”
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
14。 現在,按一下按鈕,泡杯茶回來,工資條就做好了。