2012-12-20 96 views
0

我正在嘗試通過在N列中出現的日期對每行進行數據排序。現在它只是用istelf對n列進行排序,而不用改變任何其他信息。 如何重寫我的代碼,以便整行將移動,而不僅僅是該行中的單個單元格?在列中按日期排序vba

Sub SortByDate() 
Dim rSortRange As Range 
Dim ws As Worksheet 

Set ws = Sheets("Copy") 
Set rSortRange = ws.Range("N11", "N111") 
rSortRange.Sort Key1:=ws.Range("N11"), Order1:=xlAscending, _ 
      Key2:=Range("N20"), Order2:=xlAscending, _ 
      Key3:=Range("N29"), Order3:=xlAscending, _ 
      Header:=xlNo, OrderCustom:=1, MatchCase:=False, _ 
      Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _ 
      DataOption2:=xlSortNormal, DataOption3:=xlSortNormal 
End Sub 

被它與下面的宏代碼

Sub SortByDate() 
Dim rSortRange As Range 
Dim ws As Worksheet 

Set ws = Sheets("Copy") 
Set rSortRange = ws.Range("N11", "N111") 
rSortRange.Sort Key1:=ws.Range("N11"), Order1:=xlAscending, _ 
      Key2:=Range("N20"), Order2:=xlAscending, _ 
      Key3:=Range("N29"), Order3:=xlAscending, _ 
      Header:=xlNo, OrderCustom:=1, MatchCase:=False, _ 
      Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _ 
      DataOption2:=xlSortNormal, DataOption3:=xlSortNormal 
End Sub 

有時我忘記它是多麼容易剛剛錄製宏!

+0

你是不是很難展示你的工作表?您可以獲取整個數據範圍,然後通過對Date列進行排序來對其進行排序。 – bonCodigo

+1

錄製宏。我可以給你的代碼,但我希望你先嚐試一下;) –

+0

@大衛請添加您的答案作爲答案... –

回答

1
Sub SortByDate() 
    Dim rSortRange As Range 
    Dim ws As Worksheet 

    Set ws = Sheets("Copy") 
    Set rSortRange = ws.Range("N11", "N111") 
    rSortRange.Sort Key1:=ws.Range("N11"), Order1:=xlAscending, _ 
     Key2:=Range("N20"), Order2:=xlAscending, _ 
     Key3:=Range("N29"), Order3:=xlAscending, _ 
     Header:=xlNo, OrderCustom:=1, MatchCase:=False, _ 
     Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _ 
     DataOption2:=xlSortNormal, DataOption3:=xlSortNormal 
    End Sub