我们可以根据一列对Excel工作表进行排序吗?

时间:2014-08-14 14:36:47

标签: excel vba sorting excel-vba

我有一个Excel工作表,并希望按字母顺序对其所有值进行排序。例如,让我说我有:

Col 1 | Col 2
------+-------
   z  |   26
------+-------
   a  |   1
------+-------

我想

Col 1 | Col 2
------+-------
   a  |   1
------+-------
   z  |   26
------+-------

而不是

Col 1 | Col 2
------+-------
   a  |   26
------+-------
   z  |   1
------+-------

我知道我可以使用

对第一列进行排序
Target.EntireColumn.Sort Key1:=Target, Order1:=xlAscending, Header:=xlGuess,
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

但是像这样对第一列进行排序会产生我不想要的结果。

任何人都有任何想法?

1 个答案:

答案 0 :(得分:1)

    Columns("D:D").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D1"), _
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange Range("A1:D6")
    .Header = xlNo
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With