2012-12-20 95 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