Excel VBA对多行进行排序

Excel VBA对多行进行排序,vba,excel,sorting,Vba,Excel,Sorting,我想用从A列到S列的数据按升序对每一行进行排序,总共5580行。向前看,行数将增加 我已尝试记录前两行的排序操作。然后,我尝试合并代码,从第1行排序到第39行,作为一次尝试,但失败了 Sub Macro4() Macro4 Macro Rows("13:39").Select ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.

我想用从A列到S列的数据按升序对每一行进行排序,总共5580行。向前看,行数将增加

我已尝试记录前两行的排序操作。然后,我尝试合并代码,从第1行排序到第39行,作为一次尝试,但失败了

Sub Macro4()

Macro4 Macro

Rows("13:39").Select

ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Add Key:=Range( _
    "A13:S39"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal

With ActiveWorkbook.Worksheets("Sheet1 (2)").Sort
    .SetRange Range("A13:S" & Range("A" & Rows.Count).End(xlUp).Row)
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlLeftToRight
    .SortMethod = xlPinYin
    .Apply

End With

Rows("14:14").Select
ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1 (2)").Sort.SortFields.Add Key:=Range( _
    "A14:S14"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1 (2)").Sort
    .SetRange Range("A14:S14")
    .Header = xlGuess
    .MatchCase = False
    .Orientation = xlLeftToRight
    .SortMethod = xlPinYin
    .Apply
     End With
End Sub

我想这样的事情才是最好的选择

For Each rw In Range("a1:E3").Rows

    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(rw.Address), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range(rw.Address)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With

Next rw

谢谢你,内森,但这不管用。。。我是否需要修改“rw.Address”之类的内容?