MyTetra Share
Делитесь знаниями!
Как сортировать листы в Excel? Программная сортировка листов макросом VBA
Время создания: 16.03.2019 23:43
Текстовые метки: сортировка листов
Раздел: !Закладки - VBA - Excel - Листы
Запись: xintrea/mytetra_db_adgaver_new/master/base/1518974463ml2pno7ss3/text.html на raw.githubusercontent.com

Как сортировать листы в Excel? Программная сортировка листов макросом VBA

Подробности

Категория: Макросы Excel

Опубликовано: 08 апреля 2012

В Microsoft Excel 2007, а также в более ранних версиях, нельзя сортировать листы рабочей книги стандартными средствами. Для того, чтобы упорядочить расположение листов в книге, можно прибегнуть к помощи Visual Basic for Applications (VBA).

Макрос для сортировки листов в Excel

На одной из страниц сайта http://support.microsoft.com/kb/812386 размещен программный код макроса, который сортирует листы в рабочих книгах Excel по возрастанию и убыванию. Ниже приведен этот код в несколько измененном виде.

Сортировка по возрастанию

Sub Sortirovka_Listov_Po_Vozrastaniyu()

    Dim i As Integer
    Dim j As Integer
        For i = 1 To Sheets.Count
            For j = 1 To Sheets.Count - 1
                If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
                    Sheets(j).Move After:=Sheets(j + 1)
                End If
            Next j
        Next i
End Sub

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок  в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса).

Сортировка по убыванию

Sub Sortirovka_Listov_Po_Ubyvaniyu()

    Dim i As Integer
    Dim j As Integer
        For i = 1 To Sheets.Count
            For j = 1 To Sheets.Count - 1
                If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
                    Sheets(j).Move After:=Sheets(j + 1)
                End If
            Next j
        Next i
End Sub

Приведенный выше макрос сортирует листы по имени и вполне справляется со своей задачей. В большинстве случаев он помогает автоматизировать упорядочивание листов в рабочей книге, но и свои недостатки тоже имеет. Например, если имена листов состоят из двух частей, текстовой и числовой, то в результате такой сортировки за именем "Лист1" будет следовать "Лист11", а не "Лист2", как иногда хотелось бы. Этот недостаток можно устранить, если сортировать листы по двум параметрам, как по текстовой, так и по числовой части. 

Надстройка для сортировки листов Excel

Механизм сортировки листов по двум параметрам реализован в надстройке, действие которой можно оценить на видео. Надстройка разработана на основе макроса, но более удобна при использовании, так как позволяет быстро запускать макросы прямо из панели инструментов и не тратить время на выбор нужного макроса из списка.

В другой надстройке реализовано сразу несколько способов сортировки листов от алфавитной, до сортировки по настраиваемым спискам.

Другие материалы по теме:

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования