作者:iamlaosong
公司各支部收到的党费需要汇到公司公款账户。由于无法手机转账,必须到柜台办理,所以每次需要填写汇款单。汇款单涉及汇款人和收款人账号,收款人账户名称还特别长,居然用了32个字,填起来很麻烦,还容易出错,所以就做了个工具,打印这张汇款单,其他支部也可以用。如下图,只要改变序号,打印当前表就可以打印明细表中不同支部的汇款单,不用写任何代码。汇款单需要一张一张的打印(塞一张单据打印一张),所以没有编程的必要。
本身没多少难点,和以前打印对账单、快递单差不多,关键点如下:
1、根据汇款单设置打印区域,区域外面不打印;
2、打印内容放置在文本框中,文本框内容关联下面的单元格,如下图:
3、单元格内容通过序号和明细表关联,公式是如下:
=INDEX(明细!$A$2:$H$1001,MATCH($K$31,明细!$A$2:$A$1001,0),COLUMN()+1)
不同列单元格的公式都是一样,因为列号用函数COLUMN()返回,如下图:
之所以列号要加1(COLUMN()+1),是因为明细表中有序号一列,打印表中没有(二者也可以一致),如下图:
4、金额需要转换为单个数字,保存到单元格,以便和文本框关联。如:
分位金额公式:=INT($D$31*100)-INT($D$31*10)*10
角位金额公式:=INT($D$31*10)-INT($D$31/1)*10
个位金额公式:=INT($D$31/1)-INT($D$31/10)*10
十位金额公式:=INT($D$31/10)-INT($D$31/100)*10
百位金额公式:=INT($D$31/100)-INT($D$31/1000)*10
千位金额公式:=IF($D$31<1000,"¥",INT($D$31/1000)-INT($D$31/10000)*10)
万位金额公式:=IF($D$31<1000,"",IF(D31<10000,"¥",INT($D$31/10000)))
十万位金额公式:=IF($D$31<1000,"",IF($D$31<10000,"","¥"))
其实万位以上就可以不考虑了,没那么多钱。