如何对sorting列VBA中的数字进行sorting

所以我有四列数据,但只有两列(列C和D),我想sorting。 一列是工作中心名称列(C列),另一列是操作编号(D列)。 我想知道的是如何按字母顺序对工作中心名称进行sorting,然后在每个工作中心名称中按升序对操作编号进行sorting。

所以数据最终会看起来像:(假设x是一个随机的列值)

xx LDHF 10 xx LDHF 20 xx LDHF 30 xx SHFT 10 xx SHFT 20 xx SHFT 30 

目前,这是我的代码。 它对一列进行sorting,但是当对第二列进行sorting时,它将覆盖第一排并对另一列进行加扰。

  ActiveWorkbook.Worksheets("Percent").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Percent").Sort.SortFields.Add Key:=Range( _ "D1:D" & DailyLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Percent").Sort .SetRange Range("A1:D" & DailyLastRow) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveWorkbook.Worksheets("Percent").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Percent").Sort.SortFields.Add Key:=Range( _ "C1:C" & DailyLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Percent").Sort .SetRange Range("A1:D" & DailyLastRow) .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 

你可以使用range.sort。

您可以select定义多个列来使用key1 := range.columns(3), key2 := range.columns(4)sortingkey1 := range.columns(3), key2 := range.columns(4)

这是以前的表格

 Col1 Col2 Col3 Col4 xx LDHF 30 xx SHFT 10 xx LDHF 20 xx SHFT 20 xx SHFT 30 xx LDHF 10 

这是脚本

 Sub RangeSort() Dim rng As Range Set rng = Range("a1:D7") rng.Sort key1:="Col3", order1:=xlAscending, Key2:="Col4", Header:=xlYes End Sub 

这是输出:

 Col1 Col2 Col3 Col4 xx LDHF 10 xx LDHF 20 xx LDHF 30 xx SHFT 10 xx SHFT 20 xx SHFT 30 

我想这是你想要的。

使用下面的代码。 这会做你的工作。 让我知道如果它不起作用。

 Sub PSortData() Dim rngData As Range Set rngData = Worksheets("Percent").Range("A1:D" & DailyLastRow) rngData.Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("D1"), Order2:=xlAscending, _ Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:=xlSortNormal Set rngData = Nothing End Sub