Страницы: 1
RSS
Сортировка макросом смешанного столбца
 
Здравствуйте,

В таблице есть столбец "Зоны", который содержит в себе такие значения такого вида: числоА!числоПП
притом длина их разной может быть, т е и просто 1А или 1ПП, либо 23А!65А!2ПП!33ПП. Примеры возможных комбинаций есть в файле.

Нужно этот столбец отсортировать так: первыми шли по возрастанию с буквой А, а потом по возрастанию  с буквой ПП

Пример результата сортировки:
2A
5A!56A
11A!12A
12A!15A!7ПП!10ПП
717A!15ПП
1187A!1188A
1194A!1195A!1196A
1ПП!56ПП
2ПП!4ПП
11ПП!58ПП
30ПП
А стандартная сортировка не так делает. Возможно это решить с помощью макроса? Мне именно макрос нужен, т к выгрузку в эксель делаю из бд с помощью с# и оттуда хочу вызывать макрос.
 
Можно так:
Код
Sub Srt()
    Dim i As Long, a(), x: Application.ScreenUpdating = False
    a = Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
    ReDim Preserve a(1 To UBound(a, 1), 1 To 3)
    For i = 1 To UBound(a, 1)
        a(i, 2) = Val(a(i, 1)): a(i, 3) = Left$(Replace(a(i, 1), a(i, 2), ""), 1)
    Next
    [B:C].Insert
    With [A2].Resize(UBound(a, 1), 3)
        .Value = a
        .Sort Key1:=[C2], Order1:=xlAscending, Key2:=[B2], Order2:=xlAscending
    End With
    [B:C].Delete
End Sub
Пример во вложении.
Чем шире угол зрения, тем он тупее.
 
SAS888,Спасибо! извините, что так долго не отвечала
Страницы: 1
Наверх