用macrossorting预定的字段

我想根据五个参数对我的表进行sorting。 我有以下几列:

  • 命名TX
  • 名称RX
  • 数据
  • Zeitraster
  • Richtung
  • Botschaftzahl
  • LSB位置
  • GROSSE
  • COEF
  • 马克斯

按此顺序sorting:

  1. 数据
  2. Zeitraster
  3. Botschaftzahl
  4. Richtung
  5. LSB位置

VBA将只允许三个在任何一个进程中sorting。 如果需要三个以上的键,则先对最后一个键进行sorting,然后返回三个最主键。

Sub custom_sort() Dim vKEYs As Variant vKEYs = Array("Data", "Zeitraster", "Botschaftzahl", "Richtung", "LSB Position") With ActiveSheet With .Cells(1, 1).CurrentRegion .Cells.Sort Key1:=.Columns(Application.Match(vKEYs(3), .Rows(1), 0)), Order1:=xlAscending, _ Key2:=.Columns(Application.Match(vKEYs(4), .Rows(1), 0)), Order2:=xlAscending, _ Orientation:=xlTopToBottom, Header:=xlYes .Cells.Sort Key1:=.Columns(Application.Match(vKEYs(0), .Rows(1), 0)), Order1:=xlAscending, _ Key2:=.Columns(Application.Match(vKEYs(1), .Rows(1), 0)), Order2:=xlAscending, _ Key3:=.Columns(Application.Match(vKEYs(2), .Rows(1), 0)), Order3:=xlAscending, _ Orientation:=xlTopToBottom, Header:=xlYes End With End With End Sub 

这使用从A1开始的数据块。 它使用application.Match横跨标题行来获取每个sorting键列的位置。

你可以使用Data => Sort来打开一个对话框,让你做到这一点。 在VBA中,您可以调用Sort函数。

 ActiveWorkbook.Worksheets("Sheet1").Sort.... 

最简单的方法就是logging下来,一切都应该清楚。