如何在VBA中对3列以上的数据进行sorting?

我想在VBA中排列3个以上的列。 当我添加key4时,显示“找不到名称的参数”。 我该如何处理? 这是我的代码:

Private Sub SubLieutenant_Click() Dim LastRow As Long LastRow = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Range("F6:F" & LastRow).Formula = "=DateDif(C6, Today(),""y"")+DateDif(E6, Today(), ""d"")/30" Range("A6").Sort key1:=Range("F6"), order1:=xlDescending, key2:=Range("E6"), order2:=xlAscending, key3:=Range("D6"), order3:=xlAscending, key4:=Range("C6"), order4:=xlAscending, Header:=xlYes End Sub 

使用下面提到的行进行sorting。 在不同的列上对数据进行两次sorting。

 Range("A6").Sort key1:=Range("C6"), order1:=xlAscending, Header:=xlYes Range("A6").Sort key1:=Range("F6"), order1:=xlDescending, _ key2:=Range("E6"), order2:=xlAscending, _ key3:=Range("D6"), order3:=xlAscending, Header:=xlYes 

你的例子没有什么意义,因为它正在sorting一个单元格?

但是对于一个真实的例子,您只需首先select实际的范围
然后单独添加sorting键而不是一行

 With ActiveSheet .Sort.SortFields.Add Key:=Range("F2:F6"), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("E2:E6"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("D2:D6"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .Sort.SortFields.Add Key:=Range("C2:C6"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal End With With ActiveSheet.Sort .SetRange Range("A1:G6") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With