采购人员在手工填写付款申请时,哪怕再细心也会偶尔出现笔误,比如不小心把供应商名称写错了,或是把供应商银行账号写错等等。为了避免这种情况的出现,减少不必要损失,我做了个付款申请的打印模板,效果如下: 实现上述效果,用vlookup函数就可以。你也动手试试吧! STEP 1:制作“数据表”工作表,格式和内容如下(制作过程略): STEP 2:制作“模板”工作表,格式和内容如下(制作过程略): STEP 3:设置单元格名称? ①将M2单元格自定义名称为“NoCrr”,用来存放临时序号。M2单元格仅用来存储临时序号,为了美观因此将其字体颜色和背景色设置为同一颜色。 ②将M4单元格自定义名称为“NoBgn”,表示打印的起始序号。 ③将M6单元格自定义名称为“NoEnd”,表示打印的终止序号。 ④将I7单元格自定义名称为“MnyRq”,表示申请的付款金额。 STEP 4:设置单元格公式 ①设置C3单元格公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,2,),""),用来表示从数据表中查找的部门名称。 ②设置B4单元格公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,3,),""),用来表示从数据表中查找的款项内容。 ③?设置F4单元格公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,4,),""),用来表示从数据表中查找的结算方式。 ④设置I4单元格公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,5,),""),用来表示从数据表中查找的供应商名称。 ⑤设置I5单元格公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,6,),""),用来表示从数据表中查找的开户行。 ⑥设置I6单元格公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,7,),""),用来表示从数据表中查找的银行账号。 ⑦设置I7单元格(即MnyRq)公式为=IFERROR(VLOOKUP(NoCrr,数据表!$A$2:$H$101,8,),""),用来表示从数据表中查找的付款金额。 ⑧设置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:设置打印区域 STEP 6:添加命令控件,设置显示标签为“打印”,并设置宏代码如下: Dim NoBgn, NoEnd, NoCrr As Integer NoBgn = ActiveSheet.Range("NoBgn") NoEnd = ActiveSheet.Range("NoEnd") NoCrr = ActiveSheet.Range("NoCrr") '判断:如果开始行号为空,终止运行 If NoBgn = "" Then End End If '判断:如果开始行号大于结束行号,终止运行 If NoBgn > NoEnd Then End End If ’设置循环打印 For i = NoBgn To NoEnd NoCrr = i ActiveSheet.Range("NoCrr") = NoCrr '如果部门为空,退出本次循环 If ActiveSheet.Range("c3") = "" Then End End If ActiveSheet.PrintOut '打印当前工作表 Next 提示1:用vlookup函数进行精确查找,只会找到符合条件的第一条记录。因此如果“数据表”中序号有重复的话,那么后面重复的序号所对应的数据就无法打印了。 提示2:因为“模板”工作表中用了很多公式,为避免不小心更改这些公式,可以回看教程保护单元格公式,将公式区域保护起来。 关注微信公众号回复“20170404”下载示例 学习更多EXCEL技巧,请关注微信号:excel-skills |
|