目录
- [一. 数据准备](#一. 数据准备)
- [二. 需求](#二. 需求)
- [三. 准备好报表模板](#三. 准备好报表模板)
- [四. 执行统计操作,录制宏](#四. 执行统计操作,录制宏)
-
- [4.1 根据数据源创建透视表](#4.1 根据数据源创建透视表)
- [4.2 填充数据到报表](#4.2 填充数据到报表)
- [4.3 结束宏录制](#4.3 结束宏录制)
- [五. 执行录制好的宏,自动化报表](#五. 执行录制好的宏,自动化报表)
一. 数据准备
⏹数据源1
姓名 | 学科 | 成绩 |
---|---|---|
丁志敏 | 语文 | 91 |
李平平 | 语文 | 81 |
王刚 | 语文 | 64 |
张伊 | 语文 | 50 |
王松 | 语文 | 66 |
卢海军 | 语文 | 87 |
丁志敏 | 数学 | 52 |
李平平 | 数学 | 61 |
王刚 | 数学 | 74 |
张伊 | 数学 | 40 |
王松 | 数学 | 64 |
卢海军 | 数学 | 86 |
丁志敏 | 英语 | 61 |
李平平 | 英语 | 45 |
王刚 | 英语 | 67 |
张伊 | 英语 | 92 |
王松 | 英语 | 79 |
卢海军 | 英语 | 74 |
⏹数据源2
姓名 | 班级 |
---|---|
丁志敏 | 一班 |
李平平 | 一班 |
王刚 | 一班 |
张伊 | 二班 |
王松 | 二班 |
卢海军 | 二班 |
二. 需求
数据源1和数据源2中的数据每个月都会更新,现在要求创建一个自动化报表,当数据源中的数据变化时,能自动将数据反映,并自动完成统计。
⏹数据处理的效果如下图所示
三. 准备好报表模板
⏹如下图所示,报表的模板的合计区域,先提前预埋好统计公式,为之后的录制宏做准备。
四. 执行统计操作,录制宏
⏹在开发工具选项卡,选择录制宏,指定好宏名称之后,开始录制。
宏开始录制之后,我们对Excel的所有操作都会被记录下来,由Excel自动转换为VBA代码。
4.1 根据数据源创建透视表
⏹数据源1中的数据较为分散,不利于统计汇总。
- 我们可以根据数据源1中的数据创建数据透视表,方便统计。
- 创建数据透视表的过程,如下图所示
- 💥因为是在开启录制宏的状态下创建透视表,因此创建的过程也会被宏记录下来转换为VBA代码。
4.2 填充数据到报表
⏹根据姓名 ,使用VLOOKUP公式,从数据源1和数据源2中将班级和各个学科的成绩匹配到报表中。
⏹然后,下拉自动填充全部姓名相关的数据,因为数据都是通过公式填充的,最后再复制全部的数据,然后粘贴为值
4.3 结束宏录制
⏹将透视表,数据源1,数据源2sheet页中的数据清空之后,点击停止录制 ,结束宏的录制
🤔之所以要清空这些数据,是为了自动化考虑。这样下一次使用宏之前,无需手动清空上一次的数据源之后,然后再粘贴新的数据源了。
五. 执行录制好的宏,自动化报表
⏹如下图所示,点击宏 ,选择执行宏,就可以自动进行批量计算。
这样每次只需要更换数据源,执行一下宏,就可以自动完成计算了。
🧐上图中的计算过程中,页面有闪动效果。如果不想要看到,可以在对应宏的VBA代码中,加上下面这两行代码。
vbnet
Excel.Application.ScreenUpdating = Fals
' 省略中间代码
Excel.Application.ScreenUpdating = True