說明:
該示例主要功能為將“數(shù)據(jù)表”工作表中查找到的付款信息,以“模板”工作表的格式打印出來;
M2單元格用來存儲臨時序號,利用VLOOKKUP函數(shù)從“數(shù)據(jù)表”工作表查找該序號對應(yīng)的經(jīng)辦部門、款項內(nèi)容、付款方式等內(nèi)容;
本示例只用了VLOOKUP函數(shù)進行查找,利用其它函數(shù)(或結(jié)合其它函數(shù))也可實現(xiàn)查找的功能。
采購人員在手工填寫付款申請時,哪怕再細心也會偶爾出現(xiàn)筆誤,比如不小心把供應(yīng)商名稱寫錯了,或是把供應(yīng)商銀行賬號寫錯等等。為了避免這種情況的出現(xiàn),減少不必要損失,我做了個付款申請的打印模板,效果如下:
實現(xiàn)上述效果,用vlookup函數(shù)就可以。你也動手試試吧!
STEP 1:制作“數(shù)據(jù)表”工作表,格式和內(nèi)容如下(制作過程略):
STEP 2:制作“模板”工作表,格式和內(nèi)容如下(制作過程略):
STEP 3:設(shè)置單元格名稱?
①將M2單元格自定義名稱為“NoCrr”,用來存放臨時序號。M2單元格僅用來存儲臨時序號,為了美觀因此將其字體顏色和背景色設(shè)置為同一顏色。
②將M4單元格自定義名稱為“NoBgn”,表示打印的起始序號。
③將M6單元格自定義名稱為“NoEnd”,表示打印的終止序號。
④將I7單元格自定義名稱為“MnyRq”,表示申請的付款金額。
STEP 4:設(shè)置單元格公式
①設(shè)置C3單元格公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,2,),""),用來表示從數(shù)據(jù)表中查找的部門名稱。
②設(shè)置B4單元格公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,3,),""),用來表示從數(shù)據(jù)表中查找的款項內(nèi)容。
③?設(shè)置F4單元格公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,4,),""),用來表示從數(shù)據(jù)表中查找的結(jié)算方式。
④設(shè)置I4單元格公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,5,),""),用來表示從數(shù)據(jù)表中查找的供應(yīng)商名稱。
⑤設(shè)置I5單元格公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,6,),""),用來表示從數(shù)據(jù)表中查找的開戶行。
⑥設(shè)置I6單元格公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,7,),""),用來表示從數(shù)據(jù)表中查找的銀行賬號。
⑦設(shè)置I7單元格(即MnyRq)公式為=IFERROR(VLOOKUP(NoCrr,數(shù)據(jù)表!$A$2:$H$101,8,),""),用來表示從數(shù)據(jù)表中查找的付款金額。
⑧設(shè)置C7單元格公式為=IFERROR(IF(MnyRq=0,"",IF(MnyRq<0,"負","")&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(INT(ABS(MnyRq)),"[DBNum2]")&"元"&TEXT(RIGHT(TEXT(MnyRq,".00"),2),"[DBNum2]0角0分"),"零角零分","整"),"零分","整"),"零角","零"),"零元零","")),""),用于將小寫金額顯示為大寫金額。
STEP 5:設(shè)置打印區(qū)域
STEP 6:添加命令控件,設(shè)置顯示標(biāo)簽為“打印”,并設(shè)置宏代碼如下:
Dim NoBgn, NoEnd, NoCrr As Integer
NoBgn = ActiveSheet.Range("NoBgn")
NoEnd = ActiveSheet.Range("NoEnd")
NoCrr = ActiveSheet.Range("NoCrr")
'判斷:如果開始行號為空,終止運行
If NoBgn = "" Then
End
End If
'判斷:如果開始行號大于結(jié)束行號,終止運行
If NoBgn > NoEnd Then
End
End If
’設(shè)置循環(huán)打印
For i = NoBgn To NoEnd
NoCrr = i
ActiveSheet.Range("NoCrr") = NoCrr
'如果部門為空,退出本次循環(huán)
If ActiveSheet.Range("c3") = "" Then
End
End If
ActiveSheet.PrintOut '打印當(dāng)前工作表
Next
提示1:用vlookup函數(shù)進行精確查找,只會找到符合條件的第一條記錄。因此如果“數(shù)據(jù)表”中序號有重復(fù)的話,那么后面重復(fù)的序號所對應(yīng)的數(shù)據(jù)就無法打印了。
提示2:因為“模板”工作表中用了很多公式,為避免不小心更改這些公式,可以回看教程保護單元格公式,將公式區(qū)域保護起來。
關(guān)注微信公眾號回復(fù)“20170404”下載示例
學(xué)習(xí)更多EXCEL技巧,請關(guān)注微信號:excel-skills
聯(lián)系客服