
本文于2023年6月16日首发于本人同名公众号:Excel活学活用,更多文章案例请搜索关注!
☆本期内容概要☆
考勤表按部门拆分
大家好,我是冷水泡茶,前些日子我们分享过一篇总表拆分为明细表的案例(Excel VBA 按项目把总表拆分表明细表/真实案例),这个案例属于定制项目,它是按分公司拆分,按项目汇总,所以结果是一个汇总的数字,适用性不强。后来在EXCELHOME论坛上看到一篇求助的贴子:

当时因为我们做过这个总表拆分的,加之没有时间,就没有做。
后来想想,觉得还是可以做一下的,因为它跟我前面分享的总表拆分不太一样,他只要按部门拆分成新表,没有格式方面的要求,做起来应该不是很费事。
正好今天下午有空,就试着做了一下,很快完成。现在分享给大家。下面我们还是来说一说制作思路、过程吧。
1、确定要处理的数据源,这里是考勤明细表,我们可以把它装到数组arr()里;
2、把表头字段也装到数组里,这里是tbTitle(),我们可以实现选择任意表头项目进行拆分的功能,不限于部门或者什么项目;
3、定义一个字典,把要拆分的列作为key,字典的item用来计数,即每个项目的记录数,用来准确定义数组,存放每个项目的记录;
4、通过循环字典key(这里是把字典的key赋值给一个数组,再循环数组),再循环arr()总表数据,把部门等于当前key的记录存到另一个数组;
5、每处理一个部门,等arr()循环结束,新建一个workbook,把表头以及明细数据存到sheet(1),保存并关闭工作表。文件保存在“c:\temp”文件夹下,按当前时间(Now)创建的一个子文件夹中;
6、接着处理下一个。
代码我放到第二条吧,这里我们看一下效果:

好,今天就这样吧。欢迎点赞、留言、分享,谢谢大家,我们下期再会。