VLOOKUP经典用法,一次性打印400份养老保险缴费清单明细单

总表

模板,已经设置了VLOOKUP,将各种金额引用好了。这是其中一个单元格的公式,其他单元格也是VLOOKUP就不逐一截图。

=VLOOKUP($E$2,总表!$B$5:$M$9,2,FALSE)

下面是VIP学员根据领导的要求,进行沟通和解决的过程。

刚开始,领导是希望点哪个人,就打印哪个人,也就是在总表后面搞一大堆打印按钮。

卢子看完觉得这种思路不太靠谱,于是建议,直接在模板做一个下拉菜单,这样想打印谁就打印谁,操作更简单。

点数据,数据验证,序列,来源引用总表的人员区域,确定。

这样就可以直接选择想打印的人员。

后来,她又提出,公司有400多人,有没办法批量打印,这样一个个选太麻烦了。

卢子看到这里,第一反应就是用VBA一次性生成400多张表,再打印。生成分表效果如动画。

生成分表的源代码:

Sub 生成分表()

Application.ScreenUpdating = False

Application.DisplayAlerts = False

For x = Sheets.Count To 3 Step -1

Sheets(x).Delete

Next

With Sheets(1)

For x = 5 To .Cells(Rows.Count, 2).End(3).Row

Sheets("模板").Copy After:=Sheets(Sheets.Count)

ActiveSheet.Name = .Cells(x, 2)

[E2] = .Cells(x, 2)

Next

.Select

End With

Application.DisplayAlerts = True

Application.ScreenUpdating = True

End Sub

后来,卢子觉得如果只是打印的话,直接在一个表打印就行,没必要生成一大堆表。

在表格右边空白区域,写上开始、结束数字,比如要打印1-3这3个人。

然后根据匹配值,查找对应的姓名。

=VLOOKUP($I$3,总表!$A$5:$M$9,2,FALSE)

匹配值就相当于总表的序号,也就是根据序号查找B列的姓名。

处理完,就可以用新的VBA代码一次性打印。卢子的电脑没安装打印机,就以打印1页PDF为例演示。

比如我现在只想打印第5个人,开始就输入5,结束也输入5,点批量打印。

打印后的效果大概是这样。

打印的源代码:

Sub 打印()

Dim i

i = [K2]

For i = [K2] To [K3]

[I3] = i

ActiveSheet.PrintOut

Next

End Sub

最后,用这种方法,需要添加打印区域,要不然右边无关的内容也会打印出来。选择要打印的区域,点页面布局,打印区域,设置打印区域。

在实际工作中,往往是考察你的综合运用能力,需要掌握非常多知识才行。

推荐:凭证自动打印模板,能为你节省一周时间!

上文:天天被吊打的VLOOKUP,结果谁都离不开!

你遇到过类似的批量打印吗,用的是什么方法?

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

(0)

相关推荐