工作中,有如下格式的表格,需要打印出n个员工的。员工详细数据在另外一张工作表中,那么本案例将结合函数与VBA展示综合应用的优势。
表格样式:
员工详细数据:
解决思路:
第1步
在"表格样式"工作表中插入ActiveX控件:下拉列表框,数据源定位于"员工详细数据"工作表中的B列序列号,当人工选择下拉列表项时,选中的"序列号"值存在A2单元格,为防止误删除,将A列隐藏;
因为A2单元格得到的"序列号"值是文本型的,但是数据表中的"序列号"值是数值型的,所以在A3单元格用VALUE函数做了置换:
第2步
"表格样式"工作表中需要填入数据工作表中数据的地方,使用VLOOKUP函数,查找"序列号"对应的值,例如"表格样式"工作表中的”姓名 "=VLOOKUP($A$3,data,2)","性别"单元格对应的函数公式是="VLOOKUP($A$3,data,3)"。
"data"是已定义好的名称,引用的是"员工详细数据"工作表中数据区域,第一列是序列号:
第3步
按ALT+F11快捷键进入VBA代码编辑窗口,新建一个模块,建立一个过程,命名为“打印”,指定要打印的开始-终止的"序列号",例如语句"For i = 1005 To 1006",可以根据需要随意指定员工"序列号"。
按F5执行"打印"宏,即可循环打印指定的"序列号"内的表格。
或者单击菜单项"开发工具"-"宏",也可执行该宏。
欲获取本案例的EXCEL文件,请关注公众号:OFFICE之门,发送”批量打印“即可。