Excel VBA一行代码搞定分组排序
最近很多小伙伴都被分组排序所困扰,Excel没有现成的分组排序功能,想要这功能基本都是靠录制宏.但是一旦录制宏,你就可以看到一长串不知道用不用得上,又不敢随便删除的代码
录制宏虽然好用,但是很容易有坑,例如你录制一个排序的宏,会是下面这样
我数了下,31行代码.各种选择,清除,新增,选择,清除,新增.还带上了一些默认设置.既然默认,那实际上是可以不用显示出来的呗
SORT
实际上只需要一个sort方法就可以代替这31行代码
数据如上,假设需求是这样的
时间从新到旧,销售额从大到小.也就是可以一眼看出每天的销售额排序
常规操作分两步
- 降序
销售额
- 降序
时间
想让它自动排序的话,你得按以上步骤录制一段宏.然后你就可以看到类似于上面的31行代码.然鹅,实际1行代码就够了
如图所示的sort方法,可以看到最多可以设置3个字段并指定他们的升降序,其他的设置是例如:是否有标题,全半匹配blabla等辅助设置,不过基本上用不到.写完的整段代码如下
Sub Dan()
Sheet3.Cells(2, 4).CurrentRegion.Sort key1:=Sheet3.Cells(2, 2), _
order1:=xlDescending, _
key2:=Sheet3.Cells(2, 4), _
order2:=xlDescending
End Sub
为了便于观看,我加了3个换行,等价于下面1行代码
测试下运行效果
成功实现
还没有评论,来说两句吧...