Excel VBA一行代码搞定分组排序

深藏阁楼爱情的钟 2023-06-20 06:22 127阅读 0赞

最近很多小伙伴都被分组排序所困扰,Excel没有现成的分组排序功能,想要这功能基本都是靠录制宏.但是一旦录制宏,你就可以看到一长串不知道用不用得上,又不敢随便删除的代码

录制宏虽然好用,但是很容易有坑,例如你录制一个排序的宏,会是下面这样
在这里插入图片描述
我数了下,31行代码.各种选择,清除,新增,选择,清除,新增.还带上了一些默认设置.既然默认,那实际上是可以不用显示出来的呗

SORT

实际上只需要一个sort方法就可以代替这31行代码

在这里插入图片描述

数据如上,假设需求是这样的

时间从新到旧,销售额从大到小.也就是可以一眼看出每天的销售额排序

常规操作分两步

  1. 降序销售额
  2. 降序时间

在这里插入图片描述

想让它自动排序的话,你得按以上步骤录制一段宏.然后你就可以看到类似于上面的31行代码.然鹅,实际1行代码就够了

在这里插入图片描述

如图所示的sort方法,可以看到最多可以设置3个字段并指定他们的升降序,其他的设置是例如:是否有标题,全半匹配blabla等辅助设置,不过基本上用不到.写完的整段代码如下

  1. Sub Dan()
  2. Sheet3.Cells(2, 4).CurrentRegion.Sort key1:=Sheet3.Cells(2, 2), _
  3. order1:=xlDescending, _
  4. key2:=Sheet3.Cells(2, 4), _
  5. order2:=xlDescending
  6. End Sub

为了便于观看,我加了3个换行,等价于下面1行代码

在这里插入图片描述

测试下运行效果

在这里插入图片描述
成功实现


发表评论

表情:
评论列表 (有 0 条评论,127人围观)

还没有评论,来说两句吧...

相关阅读