多列排序
一、背景
需求:对红色方框中的内容进行排序。

实现后的结果:
等同于下面

二、代码展示
Option Explicit '强制声明,最好写上去 Sub Rank() Dim sc, ec As Integer 'sc:start_row, ec:end_row Dim RankColumn As Variant Dim rc ' 如果未声明变量,默认为Variant sc = 5 ' 表头位置 ec = sc + 1 ' 排序开始的位置 RankColumn = Array("A", "B", "C") ' 先按照A排序,在按照B排序,最后按照C排序 ' 确定最后一行的位置 Do While Cells(ec, 1) <> "" ec = ec + 1 Loop '清空原有排序并重新排序,不会写没关系,先用录制宏,后改写录制宏的代码就行了 ActiveSheet.Sort.SortFields.Clear For Each rc In RankColumn ActiveSheet.Sort.SortFields.Add2 Key:= _ Range(rc & sc & ":" & rc & ec), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal ' _ (下划线) 将一行代码分解成两行;: ( 英文冒号) 将两行代码放置在一行 Next rc With ActiveSheet.Sort .SetRange Range("A" & sc & ":C" & ec) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
三、结果展示


浙公网安备 33010602011771号