Excel中的很多操作(方法)都可以通过录制宏来制作一个比较实用的VBA。 需要用到的知识: 1、工作表里动态单元格区域的表示方法。Cells(Rows.Count, 'A').End(xlUp).Row 获取工作表A列最后一个非空单元格的行号,此例为21,并会随数据行数增加、减少而动态变化。 Range('A1:G' & r) 表示A列到G列的动态单元格区域,此例是A1:G21单元格区域。 2、录制宏,获取分类汇总代码。操作如下Gif。录制得出的宏代码如下: 尽管我们不知道这些参数是什么意思,但不防来猜一下,猜错了也没什么。 GroupBy:=1 表示按公司分组,这里的 1 表示第1列; Function:=xlSum 表示求和,毕竟有关键字Sum; TotalList:=Array(3, 4, 5) 因要对费用1、2、3求和,括号内的3、4、5就是费用1、2、3 分别所在的列,第3、4、5列; 好吧,我都猜对了...... 余下的参数可以忽略,其对应分类汇总操作对话框如下图,这些其实都不难猜到。 3、录制宏,得出取消分类汇总的代码。因为数据会有更新,所以每次分类汇总,都需要先删除原来的分类汇总,再进行分类汇总。代码如下:
4、分类汇总之前,需要对数据进行排序,否则会出错。同样通过录制宏的方法,对公司进行排序,代码如下: 录制宏的代码,总是不如人意。默认没有变化的参数都可以删掉: 最后的代码块如下:插入按钮,演示如下: Excel文件下载: 链接: https://pan.baidu.com/s/1b5YUFrX1LJ_zRZT36fZK9g 密码: yvmh |
|