Excel - это не просто инструмент для хранения данных компании и бухгалтерского учета. Его сила заключается в том, что с его помощью можно легко и быстро классифицировать и управлять чем угодно. Мы можем создавать повестки дня, рабочие квадранты, адресные книги, шаблоны счетов, записи посещаемости ... Однако Excel не позволяет нам систематизировать листы рабочих тетрадей, что очень полезно, когда мы работаем с длинными книгами. Но мы можем автоматически сортировать вкладки Excel с помощью макроса в коде Visual Basic . Мы шаг за шагом объясним, как это сделать.
Слова «макрос в коде Visual Basic» могут пугать, но все проще, чем кажется. Макрос - это небольшая программа, которая выполняет за нас серию действий в Excel и служит для автоматизации повторяющихся задач . Макросы написаны в коде Visual Basic для приложений (или VBA), языке программирования, который позволяет вам получить доступ к функциям Excel и расширить их.
Редактор Visual Basic
Чтобы создать макрос, нам нужно открыть любую книгу в Excel, и чем больше в ней вкладок, тем лучше.
Чтобы открыть редактор VBA, мы используем сочетание клавиш Alt + F11 . Как только появляется окно редактора, мы ищем конкретную книгу Excel с именем Personal.xls . Эта книга обладает тем свойством, что все, что мы делаем в ней , повлияет на все книги . То есть, если мы создадим макрос, мы сможем использовать его, когда захотим.
Если вы не можете найти Личную книгу, не волнуйтесь. Выйдите из редактора, откройте вкладку Excel View, откройте меню Macros и выберите Record Macro . Сохраните макрос в своей личной книге макросов и начните запись. Затем снова откройте меню « Макросы» и остановите запись. У вас уже есть «особенная» книга.
Теперь у нас есть все готово для создания нового модуля . Мы открываем редактор VBA с помощью Alt + F11 , выбираем книгу Personal.xls, а затем нажимаем Insert> Module . Помещаем курсор в окно модуля и пишем следующий код:
Sub SortSheets_Ascendant ()
Для a = 1 To Sheets.Count
Для s = a + 1 To Sheets.Count
Если UCase (Sheets (a) .Name)> UCase (Sheets (s) .Name), то
Листы. Переместить до: = Листы (а)
Конец, если
Следующие s
Следующий на
Конец подписки
Закрываем окно, и макрос будет сохранен автоматически. Осталось только проверить, что он работает. Мы открываем книгу, вкладки которой хотим отсортировать, переходим в « Просмотр» и нажимаем « Макросы» или нажимаем сочетание клавиш Alt + F8 . Мы дважды щелкаем по SortSheets_Ascendant , и вкладки книг сразу же размещаются в алфавитном порядке .
Когда мы закроем Excel, программа спросит нас, хотим ли мы сохранить изменения, внесенные в макросы. Мы принимаем, и наш макрос будет сохранен для использования с книгой, которую мы хотим.
Сортировать листы в порядке убывания
С помощью нескольких небольших изменений кода мы можем добиться обратного эффекта: отсортировать вкладки в убывающем алфавитном порядке . Мы повторяем процесс создания макроса, и на этот раз мы вставляем следующий код:
Sub SortSheets_Descending ()
Для a = 1 To Sheets.Count
Для s = a + 1 To Sheets.Count
Если UCase (Sheets (a) .Name) <UCase (Sheets (s) .Name), то
Листы. Переместить до: = Листы (а)
Конец, если
Следующие s
Следующий на
Конец подписки
Вариантов всего две. Первое, конечно же, это название макроса. Второй - это изменение с> на <в четвертой строке кода. Это означает, что порядок листов в книге изменит направление . Теперь, когда вы нажмете « Просмотр»> «Макросы» (или сочетание клавиш Alt + F8 ), вы увидите два недавно созданных макроса. Дважды щелкните SortSheets_Descending и с удовлетворением проверьте результат.
Сохраняя изменения при выходе из Excel, эти два макроса будут доступны в любое время . Они сэкономят нам много времени и усилий при работе с особенно громоздкими вкладками книг Excel.