尝试在excel中对多个列进行排序

时间:2018-01-15 22:04:12

标签: excel sorting

我试图避免手动排序每天加载到报告中的数据。我已经尝试了一些我找到的东西,但却找不到任何可行的东西。我有大约9个差异数据表,我想相应地排序ascdending / descending。让我们说一些数据在第c2-c16行,接下来是i2-i16,然后是c23-c30。我需要它做的就是对这列中的数据进行排序。如果重要的话,列确实有一个标题。我怎么能实现这个目标?

1 个答案:

答案 0 :(得分:0)

根据您更新数据的方式,有多种方法。一种是使用excel vba宏来应用您的排序标准。要获得正确的宏,您只需使用宏生成器。它将创造一些东西:

Sub Macro1()
'
' Macro1 Makro
'

'
    Range("A1:C4").Select ' Select everything
    ActiveWorkbook.Worksheets("Table1").Sort.SortFields.Clear
    ' Sorting criteria here
    ActiveWorkbook.Worksheets("Table1").Sort.SortFields.Add Key:=Range("B1:B4") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Table1").Sort.SortFields.Add Key:=Range("C1:C4") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ' Start the sorting process
    With ActiveWorkbook.Worksheets("Table1").Sort
        .SetRange Range("A1:C4")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

下一步是使用可变长度的数据。

如何在更新数据后应用排序?

  • 如果您使用宏来添加/更新数据,只需调用排序subfunction
  • 如果您使用某个其他应用修改您的Excel的方法,可以使用多个事件,您可以在其中调用您的排序sub(对不起,没有示例,我的Mac上的Visual Basic编辑器没有&#t; t告诉他们。)