Я создаю макрос, сортирующий по возрастанию/убыванию диапазон ячеек в соответствии с его значениями. Проблема заключается в том, что она не работает со следующими данными:сортировать по возрастанию/по убыванию vba excel not working
11_NR-10.pdf 16_NR-10.pdf 1_NR-10.pdf 6_NR-10.pdf
Когда я пытаюсь разобраться , я получаю следующий результат:
1_NR-10.pdf 11_NR-10.pdf 16_NR-10.pdf 6_NR-10.pdf
ли кто-нибудь знает, как мне помочь?
Код:
Dim xlSort As XlSortOrder
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
If (.Range("A3").Value > .Range("A" & CStr(LastRow))) Then
xlSort = xlAscending
Else
xlSort = xlDescending
End If
.Range("A3:A" & LastRow).Sort Key1:=.Range("A3"), Order1:=xlSort, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End With
ActiveWorkbook.Save
Хорошо, что сортировка работает правильно. Алфавитный вид - 1, 11, 2, 22 и т. Д. Не реалистичный 1, 2, 11, 22. Если вы измените имена файлов на 01, 11, 02, 22. Сортировка будет 01, 02, 11, 22 – PaulFrancis
Если вы поместите эти четыре имени файла в четыре разных ячейки ячеек и попросите Excel отсортировать их в виде AZ, это именно тот порядок сортировки, который вы получите. Затем ваш код _is_ правильный - в том смысле, что он реплицирует поведение таблиц Excel. –
@PaulFrancis, к сожалению, я не могу изменить имена файлов. Он не может содержать 0 с левой стороны. –