Если в Вашей книге достаточно большое количество листов, то для удобства поиска хочется структурировать и упорядочить листы.
Давайте рассмотрим способы сортировки листов в Excel.
В Excel не существует стандартных способов сортировки листов, поэтому воспользуемся возможностями сортировки с помощью применения макросов.
Сортировка листов по алфавиту
Предположим, что перед нами стоит задача отсортировать листы по алфавиту, которые стоят в произвольном порядке:
Рассмотрим 2 варианта сортировки листов по алфавиту: по возрастанию (от А до Я) и по убыванию (от Я до А).
Сортировка по возрастанию
Для сортировки листов по возрастанию воспользуемся следующим макросом:
1 2 3 4 5 6 7 8 9 10 |
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 |
Для переноса макроса в свою книгу, скопируйте код и вставьте его в любой модуль книги в редакторе Visual Basic (для быстрого перехода в редактор нажмите Alt + F11).
После выполнения макроса Sorting_Sheets_Ascending структура листов примет следующий вид:

Сортировка листов по возрастанию
Сортировка по убыванию
В случае сортировки листов по убыванию, в коде макроса достаточно изменить проверку условия:
1 2 3 4 5 6 7 8 9 10 |
Sub Sorting_Sheets_Descending() 'Сортировка листов по убыванию Dim i As Integer, j As Integer For i = 1 To Sheets.Count For j = i + 1 To Sheets.Count If UCase(Sheets(i).Name) < UCase(Sheets(j).Name) Then 'Меняем условие проверки с ">" на "<" Sheets(j).Move Before:=Sheets(i) End If Next j Next i End Sub |
Структура листов после выполнения макроса Sorting_Sheets_Descending:

Сортировка листов по убыванию
Сортировка листов по цвету ярлычка
Сортировать листы можно не только по алфавиту, но и по другим параметрам, например, по цвету ярлычка:
Код макроса для сортировки по возрастанию (для сортировки по убыванию в условии нужно поменять ">" на "<"):
1 2 3 4 5 6 7 8 9 10 |
Sub Sorting_Sheets_Tab() 'Сортировка листов по цвету ярлычка Dim i As Integer, j As Integer For i = 1 To Sheets.Count For j = i + 1 To Sheets.Count If Sheets(i).Tab.Color > Sheets(j).Tab.Color Then Sheets(j).Move Before:=Sheets(i) End If Next j Next i End Sub |
В зависимости от условия сортировки (по возрастанию, по убыванию) после выполнения макроса Sorting_Sheets_Tab получаем следующие результаты:

Сортировка листов по цвету ярлычка (по возрастанию)

Сортировка листов по цвету ярлычка (по убыванию)
Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!
подскажите пожалуйста как листы с названиями типа дд.мм.гггг отсортировать?
Большое вам спасибо
Спасибо, здорово