Страницы: 1
RSS
Сортировка листов по порядку числовой нумерации
 
Здравствуйте!

Нашел вот такую сортировку
Код
Sub Sorting_Sheets_Ascending()      'Сортировка листов по возрастанию    Dim i As Integer, j As Integer      'Создание 2 целых переменных i, j
    For i = 1 To Sheets.Count      'Цикл по листу i (от 1-го до последнего листа)
        For j = i + 1 To Sheets.Count    'Цикл по листу j (от i+1-го листа до последнего листа)
            If UCase(Sheets(i).Name) > UCase(Sheets(j).Name) Then      'Проверка условия по имени листа
                Sheets(j).Move Before:=Sheets(i)      'В случае выполнения условия, перенос листа j перед листом i
            End If
        Next j
    Next i
End Sub

Она работает, всё хорошо, но сортирует она 1,10,11,12,13,14,15,16,17,18,19,2,20 и т.д.

Подскажите может есть какая нибудь сортировка чтоб сортировала 1,2,3,4,5,6,7....21,22,23 и т.д.
 
Примитивно, наверное, так можно:
Код
Sub Sorting_Sheets_Ascending()      'Сортировка листов по возрастанию
    Dim i As Integer, j As Integer      'Создание 2 целых переменных i, j
    Dim ls1, ls2, s As String
    For i = 1 To Sheets.Count      'Цикл по листу i (от 1-го до последнего листа)
        For j = i + 1 To Sheets.Count    'Цикл по листу j (от i+1-го листа до последнего листа)
            s = Sheets(i).Name
            If IsNumeric(s) Then
                ls1 = CDbl(s)
            Else
                ls1 = UCase(s)
            End If
            s = Sheets(j).Name
            If IsNumeric(s) Then
                ls2 = CDbl(s)
            Else
                ls2 = UCase(s)
            End If
            If ls1 > ls2 Then      'Проверка условия по имени листа
                Sheets(j).Move Before:=Sheets(i)      'В случае выполнения условия, перенос листа j перед листом i
            End If
        Next j
    Next i
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Да спасибо, мне помог ваш макрос.
Страницы: 1
Наверх