Excel:如何能快速的把数据汇总到工作表里呢?

2025-09-28 04:09:00

1、我们先来看一下分表结构图吧

Excel:如何能快速的把数据汇总到工作表里呢?

2、为了方便大家看结构,我把日期所在单元格L2 和数据最未行24行标记上了颜色,

每个表都是这样的格式,数据录入也不规范,以A列员工ID为列,有很多空的,空的是谁呢??有过数据录入经验的人都能猜到,这里就不说了。

再来看设计好的汇总表《总资》的结构吧。

Excel:如何能快速的把数据汇总到工作表里呢?

3、因为列太多,我隐藏了一些没数据的列,知道了数据结构和汇总样式,就开始写代码吧,这次的代码有点多,咱就不费话了,后面会对思路进行讲解,这里先照图抄秘籍吧。

Excel:如何能快速的把数据汇总到工作表里呢?

4、注意,代码是写在加载宏里的哟,加载宏怎么做的?看上次的分享吧!

代码写好以后,将此功能添加到功能区,然后,激活《总资》表,点92爱知趣助手,再点 一键汇总分表数据 ,就好啦!

Excel:如何能快速的把数据汇总到工作表里呢?

5、个人建议

    整体操作流程如下。

Excel:如何能快速的把数据汇总到工作表里呢?

6、接下来是代码思路解析时间,各位同学可要坐稳扶好,摔到了我不负责的。

1、 功能限定:

因为是加载宏,打开Excel就能使用,所以为了防止误操作造成不必要的损失,

使用了 If ActiveSheet.Name <> "总资" Then Exit Sub 语句限定只能激活 总资表的时候才能使用此功能。

Excel:如何能快速的把数据汇总到工作表里呢?

7、2、 计算写入列:

从分表的 L2 单元格中提取 天数 用来确定数据要写入哪一列(取巧·)

iCol = Day(.Range("L2").Value) + 1     为什么要加1呢?想一想!!

Excel:如何能快速的把数据汇总到工作表里呢?

8、PS:这里有两个隐式Bug,

第一个,如果分表中 L2没日期(或者不是日期),将会出错

第二个,如果第一张工作表不是总资表,也会出错。

这是我故意留里面的,给大家当作扩展练习,修复它们,你就更进一步了。

Excel:如何能快速的把数据汇总到工作表里呢?

9、3、 计算写入行:

Range.Find 用来查找数据,存在时可以确定汇总时需要在哪一行,不存在时就查最后一行数据,用来新增数据。

Excel:如何能快速的把数据汇总到工作表里呢?

10、4、 数据累加汇总:

行位置iRow用range.find找到了,列位置iCol通过提取日期中的天数来确定,用Cells来汇总就简单啦,Cells(iRow, iCol).Value = Cells(iRow, iCol).Value + .Cells(xRow, "N").Value

Excel:如何能快速的把数据汇总到工作表里呢?

11、个人建议

    上面用的都是最基础的代码,所以效率并不高(也比函数高),想要继续深入的同学可以用字典加数组来提高运行效率。

Excel:如何能快速的把数据汇总到工作表里呢?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢