按vba中的特定列排序

时间:2017-11-07 15:15:34

标签: excel vba excel-vba sorting

您好我需要一些帮助来使用VBA对EXCEL中的某些数据进行排序。我有这个代码

Dim keyRange As Range
Set strDataRange = Range("A1:AB300")
Set keyRange = Range("W1")
strDataRange.Sort Key1:=keyRange, Header:=xlYes

这个想法是通过列W中的数据对A1:AB300范围内的所有数据进行排序。问题是代码只是对列W进行排序,而不是对其余列进行排序。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

尝试这样做,包括keyRange的整个范围,并参考工作表:

Sub TestMe()

    Dim keyRange        As Range
    Dim strDataRange    As Range

    With ActiveSheet
        Set strDataRange = .Range("A1:AB300")
        Set keyRange = .Range("W1:W300")
        strDataRange.Sort Key1:=keyRange, Header:=xlYes
    End With

End Sub

答案 1 :(得分:0)

试试这段代码:

Sub sort()

Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("A1:Z" & LastRow).Sort Key1:=Range("W1:W" & LastRow), _
   Order1:=xlAscending, Header:=xlYes

End Sub

PS。网上有大量的排序示例。