Excel實(shí)現(xiàn)批量打印工資條
每月月初那幾天時(shí)間(發(fā)工資時(shí)間)是財(cái)務(wù)MM最為苦惱的幾天,她們除制作工資報(bào)表外還要制作工資條(每人一條),由于我公司員工有190多人,按照傳統(tǒng)的復(fù)制、粘貼、排列方法她們要進(jìn)行很長(zhǎng)版面的重復(fù)操作,如果其中有某個(gè)數(shù)據(jù)要改動(dòng),牽涉的版面范圍就很廣,工作量很大。我“自告奮勇”為她們制作了一套工資條批量打印的模板,解決了她們的苦惱,這種方法也適用與大多數(shù)企業(yè),下面向大家介紹。
財(cái)務(wù)MM給我提供了工資條格式(圖1),由于工資條比較窄小,如果用Word的郵件合并功能,按默認(rèn)設(shè)置只能一張紙打印一個(gè)工資條,浪費(fèi)紙張不說(shuō),效率也不高,如果將工資條復(fù)制幾份放在同一A4紙頁(yè)面的話對(duì)郵件合并的數(shù)據(jù)源則要進(jìn)行多縱列排版,數(shù)據(jù)源有變動(dòng)需要修改的時(shí)候也很不方便,而且工資條里含有“金額大寫(xiě)”項(xiàng)目,用郵件合并功能也比較麻煩,經(jīng)過(guò)綜合考慮和比較,決定用Excel2003來(lái)制作帶金額大寫(xiě)且能滿幅面批量打印的工資條模板。
經(jīng)詢問(wèn)得知工資報(bào)表為每月必做,決定采用調(diào)用工資報(bào)表數(shù)據(jù)來(lái)實(shí)現(xiàn)。通過(guò)測(cè)量,發(fā)現(xiàn)一張A4紙縱向放4個(gè)工資條比較合適。
一、修改工資報(bào)表
為方便數(shù)據(jù)調(diào)用和發(fā)放工資時(shí)能“對(duì)號(hào)入座”,我們?cè)趫?bào)表前插入兩列,分別命名為“序號(hào)”和“工資條編號(hào)”,在A3單元格里輸入=row()-2,在B3中輸入=row()+2005049998,同時(shí)選中A3和B3單元格,往下拖動(dòng)填充句柄到最后一行以產(chǎn)生能自動(dòng)調(diào)整的序號(hào)和工資條編號(hào)。修改后報(bào)表格式如圖2所示(其中某些無(wú)須用到的數(shù)據(jù)列已隱藏)。
二、制作工資條打印界面
1.設(shè)計(jì)打印內(nèi)容界面
在工資報(bào)表工作簿里插入一個(gè)工作表,重命名為“打印”,并將原有工資條格式復(fù)制到里面,然后按以下步驟操作(這里的操作步驟比較多一點(diǎn),不過(guò)對(duì)以后來(lái)說(shuō)能做到“一勞永逸”):
在B2里輸入=now(),并設(shè)置其單元格格式,“數(shù)字”標(biāo)簽中“分類(lèi)”為“日期”,“類(lèi)型”為“2001年3月14日”;在I2、A6、B5、C5、D5、E5、F5、G5、H5、B8、C8、D8、E8、F8中分別輸入=VLOOKUP(M5,工資報(bào)表!A:R,2)、=VLOOKUP(M5,工資報(bào)表!A:R,4)、=VLOOKUP(M5,工資報(bào)表!A:R,5)、=VLOOKUP(M5,工資報(bào)表!A:R,6)、=VLOOKUP(M5,工資報(bào)表!A:R,7)、=VLOOKUP(M5,工資報(bào)表!A:R,8)、=VLOOKUP(M5,工資報(bào)表!A:R,9)、=VLOOKUP(M5,工資報(bào)表!A:R,10)、=VLOOKUP(M5,工資報(bào)表!A:R,11)、=VLOOKUP(M5,工資報(bào)表!A:R,12)、=VLOOKUP(M5,工資報(bào)表!A:R,13)、=VLOOKUP(M5,工資報(bào)表!A:R,14)、=VLOOKUP(M5,工資報(bào)表!A:R,15);在J5和F8中分別輸入=SUM(B5:H5)和=J5-SUM(B8:E8),把它們的單元格格式都設(shè)置成“數(shù)值”并保留兩位小數(shù),在G8中輸入=F8,設(shè)置其單元格格式為“特殊”中的“中文大寫(xiě)數(shù)字”,然后選擇第1—9行行標(biāo)號(hào)把此工資條往下復(fù)制3份并分別修改第2、3、4工資條中的公式,在所有內(nèi)容保持不變的情況下只須將第2個(gè)工資條中的所有“M5”改為“M5+1”(比如第2個(gè)工資條的I14單元應(yīng)改為=VLOOKUP(M5+1,工資報(bào)表!A:R,2),其余類(lèi)推),第3個(gè)工資條中改為“M5+2”,第4個(gè)工資條中改為“M5+3”。 調(diào)整好頁(yè)面設(shè)置使之適合A4頁(yè)面,并在4個(gè)工資條之間設(shè)置三條單元格邊框虛線以方便打印后切割。
2.設(shè)計(jì)打印控制界面
在L5、L7和L9中分別輸入“當(dāng)前序號(hào)”、“開(kāi)始序號(hào)”和“結(jié)束序號(hào)”,留M5、M7和M9存放序號(hào)數(shù)值,右擊工具欄選擇“窗體”,彈出窗體工具欄,選擇其中的“組合框”在N5單元格畫(huà)一個(gè)組合框,右擊此組合框選“設(shè)置控件格式”,在“控制”標(biāo)簽中設(shè)置“數(shù)據(jù)源區(qū)域”為“工資報(bào)表!$D$3:$D$20”(即工資報(bào)表中的“姓名”區(qū)域),“單元格鏈接”為“$M$5”。確定后把這個(gè)組合框復(fù)制兩份分別放在N7和N9單元格里,并分別將其“單元格鏈接”改為“$M$7”和“$M$9”。再在“窗體”工具欄中選擇“按鈕”畫(huà)一個(gè)矩形按鈕放在L13:N14單元格區(qū)域中,將其文字改為“打印所選范圍”(圖3),右擊此按鈕,選擇“指定宏”,在彈出窗口中點(diǎn)“新建”按鈕,編輯如下代碼(注釋文字不用輸入):
Sub 按鈕4_單擊()
序號(hào) = Range("M7"
.Value
打印:
If 序號(hào) <= Range("M9"
.Value Then
Range("M5"
.Value = 序號(hào)
If Range("M9"
.Value - 序號(hào) = 0 Then
Range("A1:J9"
.PrintOut Copies:=1
GoTo 結(jié)束
End If
If Range("M9"
.Value - 序號(hào) = 1 Then
Range("A1:J21"
.PrintOut Copies:=1
GoTo 結(jié)束
End If
If Range("M9"
.Value - 序號(hào) = 2 Then
Range("A1:J33"
.PrintOut Copies:=1
GoTo 結(jié)束
End If
‘以上三段If條件語(yǔ)句的作用為當(dāng)打印到所選序號(hào)范圍的最后一頁(yè)時(shí),判斷最后一頁(yè)的工資條數(shù)目是否足4條,如果不足4條則只打印最后頁(yè)所剩余的條數(shù)并結(jié)束整個(gè)循環(huán)。在原裝耗材如此昂貴的年代,我們不得不“惜墨如金”啊
序號(hào) = 序號(hào) + 4
Range("A1:J45"
.PrintOut Copies:=1
GoTo 打印
End If
‘如果序號(hào)小于等于M9則跳回"打印" 循環(huán)點(diǎn),否則中止循環(huán).
結(jié)束:
End Sub
為能正常實(shí)現(xiàn)打印功能,應(yīng)將宏的安全性設(shè)置一下,點(diǎn)“工具→宏→安全性”,建議將宏的安全性設(shè)置為“中”,以后打開(kāi)此文件時(shí)選擇“啟用宏”即可。
3.美化界面
好了,所有的設(shè)計(jì)工作基本完畢,剩下就就是做一些美化工作,將除A1:J45區(qū)域以外的單元格的底紋設(shè)置為你所喜歡的顏色(比如天藍(lán)色),將M5、M7、M9底紋設(shè)成比較醒目的黃色,點(diǎn)“工具→選項(xiàng)”,將“網(wǎng)格線”、“行列標(biāo)號(hào)”和“零值”前的鉤去掉。為防止財(cái)務(wù)MM的誤操作修改所設(shè)計(jì)的內(nèi)容,可點(diǎn)“工具→保護(hù)→保護(hù)工作表”將工作表保護(hù)起來(lái)。最后將此文件保存為一個(gè)模板(如“工資條.xlt”)以便以后調(diào)用。最后界面如圖4所示。
現(xiàn)在只要在M7和M9中輸入開(kāi)始序號(hào)和結(jié)束序號(hào)(或在右邊的姓名組合框中選擇姓名),再點(diǎn)擊打印的那個(gè)按鈕就可一次滿幅面批量打印出所選范圍的員工工資條,最后一頁(yè)記錄如果不足4條并不會(huì)打印出多余的內(nèi)容來(lái)。如果有時(shí)僅需要打印某一個(gè)員工的工資條,只要在開(kāi)始序號(hào)和結(jié)束序號(hào)都輸入該員工的序號(hào)(或在右邊組合框都選擇該員工姓名)即可只打印該員工工資條(同樣不會(huì)打印多余內(nèi)容),非常方便。在以后的月份中如果有數(shù)據(jù)變動(dòng),只需要改動(dòng)“工資報(bào)表”中的數(shù)據(jù),然后打到“打印”工作表中進(jìn)行打印,即使有人事變動(dòng)要在“工資報(bào)表”中增加或刪除員工工資記錄行,也不會(huì)影響“序號(hào)”和“工資條編號(hào)”的連續(xù)性。
來(lái)源:中國(guó)電腦報(bào)