乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel排序-Excel只能按照指定方式排序?NO!还可以按照自定义方式排序

excel排序-Excel只能按照指定方式排序?NO!还可以按照自定义方式排序

作者:乔山办公网日期:

返回目录:excel表格制作

VBA早间档

VBA早间档,利用简单的几分钟,学习一些简单的VBA知识,提升工作效率


今日主题

再之前我们分享过一些排序的方式,就在昨天我们分享了按照颜色来进行排序的方式,今天我们再来学一个新的排序方式,就是按照自定义的序列来进行排序,这样的操作在日常的工作中是经常遇到的。来看看场景


案例展示和解析

这是我们今天的工作表,在第一列和第二列有我们已经做好的模拟数据,我们现在希望能够将这两列数据,按照右边的顺序进行排序,方便我们进行数据的处理和登记,Excel传统的排序方式都没有办法满足我们的要求,所以这里我们就只能自己创造一个新的排序方式了。来看看代码


代码区


Sub test()Dim rng As Range, trng As RangeSet rng = Application.InputBox("请选择标准区域", , , , , , , 8)Set trng = Application.InputBox("请选择需要排序的区域", , , , , , , 8)Application.AddCustomList listarray:=rngtrng(1).Sort key1:=trng(1), Header:=xlYes, ordercustom:=Application.CustomListCount + 1Application.DeleteCustomList listnum:=Application.CustomListCountEnd Sub

其实代码还是很简单的,简单的几行就实现了。来验证下


这里肯定会有小伙伴就会说,没有标题栏,如果我的数据由标题栏呢?需要更改代码之类的吗?


来验证下咯


完全不需要更换任何代码,依然可以轻松的实现效果。


代码解析


好啦,既然功能实现了,那么老规矩,就来看看代码是如何实现的吧


昨天我们学习了range的sort方式,今天我们还是利用这个方式来实现的


Application.AddCustomList listarray:=rng

添加一个自定义的排序序列,就是我们自己设置的排序


trng(1).Sort key1:=trng(1), Header:=xlYes, ordercustom:=Application.CustomListCount + 1

利用单元格的sort方式进行排序,指定了单元格区域的第一个单元格trng(1),同时也表明包含了标题栏


Application.DeleteCustomList listnum:=Application.CustomListCount

既然额外增加了自定义的序列,为了不影响其他的排序,我们还是需要将这个序列删除,恢复原始的状态。


==========================================


以上就是今天的VBA早间档的全部内容,感谢大家的捧场~~


明天早上7:30,准时再见


相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网