2012-11-26 95 views
0

我想對一定範圍內的多列進行排序。我的工作表有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 

預先感謝您。

+0

你錄製宏看到Excel使用的代碼? – SeanC

+0

我不能這樣做,因爲範圍每次都會有所不同。 –

+0

這是我從記錄宏獲得的,通過選擇A2:D20然後按降序對列D進行排序:http://pastebin.com/dkaE8HPt。這有什麼變化? – SeanC

回答

1

如何只:

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

感謝您的幫助。太棒了! –

相關問題