Сортировка листов
Если количество листов в Вашей книге приближается к нескольким десяткам, то - рано или поздно - возникнет желание отсортировать листы, разложив их по порядку для удобства навигации. Стандартные средства Excel не позволяют сделать этого, но можно использовать простой макрос, который реализует эту сортировку.
Откройте редактор Visual Basic с помощью сочетания клавиш ALT+F11, вставьте новый модуль (меню Insert - Module) и скопируйте туда код этого макроса:
Sub SortSheets() Dim I As Integer, J As Integer For I = 1 To Sheets.Count - 1 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
Теперь этот макрос можно запустить через меню Сервис - Макрос - Макросы (Tools - Macro - Macros) или нажав сочетание клавиш ALT+F8 и выбрав команду Выполнить (Run) он быстро отсортирует все листы в текущей книге по возрастанию.
Ссылки по теме
- Быстрый переход между листами в книге Excel
- Что такое макросы, куда вставлять код макроса, как их использовать
- Удобное управление листами с помощью Менеджера Листов из надстройки PLEX
все гениальное-просто!
предлагаю сделать рабочие дни до 17.00 для тех кто использует макросы)))).
Правда с текстовыми названиями тогда макрос работать не сможет.
Если у вас установлена надстройка PLEX, то можно попробовать использовать функцию GetNumbers выделения чисел из текста, которая в ней есть. Тогда 6-я строчка будет выглядеть как:
Отличный инструмент!
Единственное что бы хотелось добавить, но своими скромными силами так у меня и не вышло, так это вывод сообщения о защите паролем книги от изменения ее структуры, если таковая у книги есть, и вывода диалогового окна с полем ввода пароля для снятия защиты.
Если бы Вы расширили таким образом функционал данного макроса, был бы Вам очень признателен как с практической точки зрения, так и с познавательской - очень интересно, как это все-таки должно быть написано))
Заранее спасибо!
Подскажите пожалуйста где нужно изменить код для того что бы листы шли по определенной структуре:
К примеру: Нужна сортировка листов (месяцев) не от А до Я: а по их очередности: Январь; Февраль; Март.... Декабрь...
Интересует именно в этой структуре кода:
так как с помощью макрорекордера удалось сообразить пока вот такой:
Sub Сортировка_месяцев()
Очень помогло! у меня листов больше 50 и искать нужное очень тяжело. а сейчас по алфавиту все быстро ищется
В макросе задать такой порядок: "Гвозди", "Слоны", "Болты", "Печенье", "Шурупы", "Яблоки", "Гайки", "Самолеты"...