分享

VBA录制宏:分类汇总(SubTotal方法)

 剩矿空钱 2018-07-07

VBA录制宏:分类汇总(SubTotal方法)


Excel中的很多操作(方法)都可以通过录制宏来制作一个比较实用的VBA。

VBA录制宏:分类汇总(SubTotal方法)


需要用到的知识:

1、工作表里动态单元格区域的表示方法。

Cells(Rows.Count, 'A').End(xlUp).Row

获取工作表A列最后一个非空单元格的行号,此例为21,并会随数据行数增加、减少而动态变化。

Range('A1:G' & r) 表示A列到G列的动态单元格区域,此例是A1:G21单元格区域。

2、录制宏,获取分类汇总代码。操作如下Gif。

VBA录制宏:分类汇总(SubTotal方法)

录制得出的宏代码如下:

VBA录制宏:分类汇总(SubTotal方法)

尽管我们不知道这些参数是什么意思,但不防来猜一下,猜错了也没什么。

GroupBy:=1 表示按公司分组,这里的 1 表示第1列;

Function:=xlSum 表示求和,毕竟有关键字Sum;

TotalList:=Array(3, 4, 5) 因要对费用1、2、3求和,括号内的3、4、5就是费用1、2、3

分别所在的列,第3、4、5列;

好吧,我都猜对了......

余下的参数可以忽略,其对应分类汇总操作对话框如下图,这些其实都不难猜到。

VBA录制宏:分类汇总(SubTotal方法)

3、录制宏,得出取消分类汇总的代码。

因为数据会有更新,所以每次分类汇总,都需要先删除原来的分类汇总,再进行分类汇总。代码如下:

Selection.RemoveSubtotal

4、分类汇总之前,需要对数据进行排序,否则会出错。

VBA录制宏:分类汇总(SubTotal方法)

同样通过录制宏的方法,对公司进行排序,代码如下:

VBA录制宏:分类汇总(SubTotal方法)

录制宏的代码,总是不如人意。默认没有变化的参数都可以删掉:

VBA录制宏:分类汇总(SubTotal方法)


最后的代码块如下:

VBA录制宏:分类汇总(SubTotal方法)

插入按钮,演示如下:

VBA录制宏:分类汇总(SubTotal方法)


Excel文件下载:

链接: https://pan.baidu.com/s/1b5YUFrX1LJ_zRZT36fZK9g 密码: yvmh

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多