首页 > 解决方案 > 如何按列对 Excel 表格进行排序

问题描述

我有一个如下所示的表格。如何通过按日期升序排列列来对该表进行排序?

在此处输入图像描述

标签: excelvba

解决方案


您可以从左到右对数据范围进行排序,但不能从左到右对表进行排序。您需要先将表格转换为范围,然后您可以应用带有从左到右排序选项的排序命令。之后,您可以再次将范围制作成表格。

宏记录器将有助于建立从左到右排序的正确代码。启动它,然后在排序对话框中单击“选项”并选择“从左到右”。选择您的排序行并完成对话框。然后代码看起来像这样:

Sub Macro2()
'
' Macro2 Macro
'

'
    Range("A1:D3").Select
    ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add2 Key:=Range("A1:D1") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Sheet3").Sort
        .SetRange Range("A1:D3")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlLeftToRight
        .SortMethod = xlPinYin
        .Apply
    End With
    Application.CutCopyMode = False
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$D$3"), , xlYes).Name = _
        "Table2"
    Range("Table2[#All]").Select
End Sub

调整以适合您的场景。


推荐阅读