用EXCEL实现批量打印《企业年金个人信息确认表》
周临军
近日,人力资源部门需要打印全行的《企业年金个人信息确认表》交每个员工签字,如果从清单中逐个将每人的信息复制粘贴到《企业年金个人信息确认表》,再打印出来,无疑工作量非常巨大,还容易出错。如何既准确提取数据,又能减少工作量呢?负责此项工作的雷姐向我求助。于是,我想到了利用EXCEL的VBA编程技术来达到这一目的。具体如下:
1、启用“宏”,在EXCEL的工具栏下打开“宏”(EXCEL2007版则需先点击左上角图标,找到EXCEL选项,勾选“在功能区显示‘开发工具’选项卡”,然后在开发工具栏打开“宏”),将“宏安全性”设为“中”。
2、点击“宏”,创建一个“宏”(宏名称可任意取,如“批量打印”),编辑这个“宏”,写下如下代码:
Sub 批量打印()
'
' Macro1 Macro
'
Sheets(2).Select ‘选定Sheets(2)表,此表为企业年金个人信息清单
qsh = Application.InputBox(prompt:="请输入起始号", Type:=1) ‘录入需要打印的起始编号
If qsh = False Then Exit Sub
jsh = Application.InputBox(prompt:="请输入结束号", Type:=1) ‘录入结束打印的终止编号
If jsh = False Then Exit Sub
Sheets(1).Select ‘选定Sheets(1)表,此表为企业年金个人信息确认表 For i = qsh + 1 To jsh + 1
Sheets(1).Range("b1") = Sheets(2).Range("a" & i).Value‘从Sheets(2)表的A列提取编号,填入Sheets(1)的B1单元格
Sheets(1).Range("b3") = Sheets(2).Range("s" & i).Value‘从Sheets(2)表的S列提取部门信息,填入Sheets(1)的B3单元格
Sheets(1).Range("d3") = Sheets(2).Range("c" & i).Value‘从Sheets(2)表的C列提取姓名信息,填入Sheets(1)的D3单元格
Sheets(1).Range("f3") = Sheets(2).Range("i" & i).Value‘从Sheets(2)表的I列提取性别信息,填入Sheets(1)的F3单元格
Sheets(1).Range("b4") = Sheets(2).Range("e" & i).Value‘从Sheets(2)表的E列提取证件号码信息,填入Sheets(1)的B4单元格
Sheets(1).Range("f4") = Sheets(2).Range("h" & i).Value‘从Sheets(2)表的H列提取出生日期信息,填入Sheets(1)的F4单元格
Sheets(1).Range("b5") = Sheets(2).Range("o" & i).Value‘从Sheets(2)表的O列提取参加工作日期信息,填入Sheets(1)的B5单元格
Sheets(1).Range("d5") = Sheets(2).Range("n" & i).Value‘从Sheets(2)表的N列提取入农行日期信息,填入Sheets(1)的D5单元格
Sheets(1).Range("f5") = Sheets(2).Range("f" & i).Value‘从Sheets(2)表的F列提取参加年金计划日期信息,填入Sheets(1)的F5单元格
Sheets(1).Range("b7") = Sheets(2).Range("u" & i).Value‘从Sheets(2)表的U列提取2008年补缴信息,填入Sheets(1)的B7单元格
Sheets(1).Range("c7") = Sheets(2).Range("v" & i).Value‘从Sheets(2)表的V列提取2009年补缴信息,填入Sheets(1)的C7单元格
Sheets(1).Range("d7") = Sheets(2).Range("w" & i).Value‘从Sheets(2)表的W列提取2010年补缴信息,填入Sheets(1)的D7单元格
Sheets(1).Range("e7") = Sheets(2).Range("x" & i).Value‘从Sheets(2)表的X列提取2011年补缴信息,填入Sheets(1)的E7单元格
Sheets(1).Range("f7") = Sheets(2).Range("y" & i).Value‘从Sheets(2)表的Y列提取2008年补缴信息,填入Sheets(1)的F7单元格
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True‘输出到打印机打印出来
Next i
'
End Sub
3、执行“宏”
点击“宏”后,运行这个“宏”就OK了。
4、表格格式如下:
Sheet1表
Sheet2表
第一行为表头,从第二行起为个人信息。
总结,EXCEL的VBA编程简单易学,掌握了能将大量的简单重复劳动由计算机自动完成,对提高工作效率大有帮助,以上方法不仅能实现《企业年金个人信息确认表》的打印,稍做修改,还能实现打印明信片、请柬等等。