用macrossorting预定的字段
我想根据五个参数对我的表进行sorting。 我有以下几列:
- 命名TX
- 名称RX
- 数据
- Zeitraster
- Richtung
- Botschaftzahl
- LSB位置
- GROSSE
- COEF
- 敏
- 马克斯
按此顺序sorting:
- 数据
- Zeitraster
- Botschaftzahl
- Richtung
- 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下来,一切都应该清楚。