如何快速实现excel表格里多个独立列文本型数据的升序排列

假设我有文本型数据在A1:A10,B1:B10,C1:C10,A20:A 30,B20:B30,C20:C30……,每个区域的数据均要实现升序排列,如果每次点选“升序”按钮的话,比较麻烦,可不可以用公式或其它方法实现自动升序排列,求高手指点,谢谢!

录制一个宏,自己编辑下代码,注意更改其中的数据范围: 
Sub 宏2()
'
' 宏2 宏
'
'
    Range("A1:A10").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("A1:A10")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    Range("B1:B10").Select
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("B1:B10")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-21

打开工作表,按Alt+F11

在代码窗口拷贝下列语句:

Sub Arrange()

Dim rT As Range

Set rT = Union(Range("A1:A10"), _

               Range("B1:B10"), _

               Range("C1:C10"), _

               Range("A20:A30"), _

               Range("B20:B30"), _

               Range("C20:C30") _

               )

For i = 1 To rT.Areas.Count

    rT.Areas(i).Sort key1:=rT.Areas(i).Item(1)

Next

End Sub

运行宏Arrange即可。。你可以看到可以在第三句中继续按格式添加需要排序的区域

本回答被网友采纳
第2个回答  2014-06-21
假定原数据在SHEET1表中,排序结果放在SHEET2表中。在SHEET2表A1单元格输入公式:
=SMALL(INDIRECT("SHEET1!R"&INT((ROW()-1)/10)*10+1&"C"&COLUMN()&":R"&INT((ROW()-1)/10)*10+10&"C"&COLUMN(),),MOD(ROW()-1,10)+1)
公式以CTRL+SHIFT+ENTER三键结束。
将公式向右向下复制。
第3个回答  2014-06-21
是每个区域依次要升序排列对吧,可以录制一个宏,然后将宏指定给一个控件,以后每次单击控件即可完成。
第4个回答  2014-06-21
可以全部选中 按 升序
相似回答