利用Excel实现满幅面批量打印工资条
公司工资条格式(图1),由于工资条比较窄小,如果用Word的邮件合并功能,按默认设置只能一张纸打印一个工资条,浪费纸张不说,效率也不高,如果将工资条复制几份放在同一A4纸页面的话对邮件合并的数据源则要进行多纵列排版,数据源有变动需要修改的时候也很不方便,而且工资条里含有“金额大写”项目,用邮件合并功能也比较麻烦,经过综合考虑和比较,决定用Excel2003来制作带金额大写且能满幅面批量打印的工资条模板。
经询问得知工资报表为每月必做,决定采用调用工资报表数据来实现。通过测量,发现一张A4纸纵向放4个工资条比较合适。 一、修改工资报表
二、制作工资条打印界面 1.设计打印内容界面 在B2里输入=now(),并设置其单元格格式,“数字”标签中“分类”为“日期”,“类型”为“2001年3月14日”;在I2、A6、B5、C5、D5、E5、F5、G5、H5、B8、C8、D8、E8、F8中分别输入=VLOOKUP(M5,工资报表!A:R,2)、=VLOOKUP(M5,工资报表!A:R,4)、=VLOOKUP(M5,工资报表!A:R,5)、=VLOOKUP(M5,工资报表!A:R,6)、=VLOOKUP(M5,工资报表!A:R,7)、=VLOOKUP(M5,工资报表!A:R,8)、=VLOOKUP(M5,工资报表!A:R,9)、=VLOOKUP(M5,工资报表!A:R,10)、=VLOOKUP(M5,工资报表!A:R,11)、=VLOOKUP(M5,工资报表!A:R,12)、=VLOOKUP(M5,工资报表!A:R,13)、=VLOOKUP(M5,工资报表!A:R,14)、=VLOOKUP(M5,工资报表!A:R,15);在J5和F8中分别输入=SUM(B5:H5)和=J5-SUM(B8:E8),把它们的单元格格式都设置成“数值”并保留两位小数,在G8中输入=F8,设置其单元格格式为“特殊”中的“中文大写数字”,然后选择第1—9行行标号把此工资条往下复制3份并分别修改第2、3、4工资条中的公式,在所有内容保持不变的情况下只须将第2个工资条中的所有“M5”改为“M5+1”(比如第2个工资条的I14单元应改为=VLOOKUP(M5+1,工资报表!A:R,2),其余类推),第3个工资条中改为“M5+2”,第4个工资条中改为“M5+3”。 调整好页面设置使之适合A4页面,并在4个工资条之间设置三条单元格边框虚线以方便打印后切割。 2.设计打印控制界面
Sub 按钮4_单击() 结束: 3.美化界面
现在只要在M7和M9中输入开始序号和结束序号(或在右边的姓名组合框中选择姓名),再点击打印的那个按钮就可一次满幅面批量打印出所选范围的员工工资条,最后一页记录如果不足4条并不会打印出多余的内容来。如果有时仅需要打印某一个员工的工资条,只要在开始序号和结束序号都输入该员工的序号(或在右边组合框都选择该员工姓名)即可只打印该员工工资条(同样不会打印多余内容),非常方便。在以后的月份中如果有数据变动,只需要改动“工资报表”中的数据,然后打到“打印”工作表中进行打印,即使有人事变动要在“工资报表”中增加或删除员工工资记录行,也不会影响“序号”和“工资条编号”的连续性。 |