Excel 对特定范围的多个列进行排序

Excel 对特定范围的多个列进行排序,excel,vba,sorting,Excel,Vba,Sorting,我试图对某个范围内的多个列进行排序。我的工作表有4列(A、B、C、D)和80行。。。然而,我想按D列排序。然而,我只想按降序在第2-20行之间排序。有人能帮我查一下这个密码吗 以下是我的代码: Sub Macro1() Range("A2:D20").Select ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key

我试图对某个范围内的多个列进行排序。我的工作表有4列(A、B、C、D)和80行。。。然而,我想按D列排序。然而,我只想按降序在第2-20行之间排序。有人能帮我查一下这个密码吗

以下是我的代码:

Sub Macro1()
Range("A2:D20").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D2:D20") _
     , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange Range("A1:D20")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
End Sub
提前谢谢你。

就这样吧:

Range("A2:D20").Sort key1:=Cells(20, 4), order1:=xlDescending, Header:=xlNo

您是否录制了宏以查看Excel使用的代码?我不能这样做,因为每次的范围都会有所不同。这是我录制宏时得到的结果,方法是选择A2:D20,然后按降序对D列排序:。这有什么变化?