2016-02-11 4 views
0

У меня есть следующие данные в Col GA и GB соответственноДиапазона сортировки, используя несколько критериев

GA GB 
1 strn 
2 accn 
6 thon 
8 advn 
9 estn 
14 actn 
17 cngn 
37 autn 
49 empn 

И я использую следующий код автогенерируемого сделать A-> Z роды с седловиной GA является ключевым диапазоном.

Columns("GA:GB").Select 
    ActiveWorkbook.Worksheets("CSV Dump").Sort.SortFields.Clear 
    ActiveWorkbook.Worksheets("CSV Dump").Sort.SortFields.Add Key:=Range("GA1"), _ 
     SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
    With ActiveWorkbook.Worksheets("CSV Dump").Sort 
     .SetRange Range("GA1:GB9") 
     .Header = xlNo 
     .MatchCase = False 
     .Orientation = xlTopToBottom 
     .SortMethod = xlPinYin 
     .Apply 
    End With 

Мой вопрос, если цв GA имеет одинаковые значения, как следующее:

GA GB 
1 strn 
2 accn 
2 thon 
8 advn 
9 estn 
14 actn 
17 cngn 
37 autn 
49 empn 

то, как я могу изменить код или любыми другими средствами сортировки седловины GB от Z-> а только для диапазона в col GA, который имеет дубликаты?

Ожидаемый результат:

GA GB 
1 strn 
2 thon 
2 accn 
8 advn 
9 estn 
14 actn 
17 cngn 
37 autn 
49 empn 

ответ

1

То, что вы хотите сделать, это добавить второй уровень сортировки. Это означает, что после

ActiveWorkbook.Worksheets("CSV Dump").Sort.SortFields.Add Key:=Range("GA1"), _ 
    SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 

Вы хотите ввести аналогичную строку, но ссылаясь на колонку GB с обратным порядком.

ActiveWorkbook.Worksheets("CSV Dump").Sort.SortFields.Add Key:=Range("GB1"), _ 
    SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal 
+0

Хорошо, что помогает спасибо :) – newguy

Смежные вопросы