Макросы Excel могут быть не такими комплексными, как другие инструменты автоматизации, но достоверность и эффективность Excel VBA не может быть подорвана. Если вы работаете в Excel и других инструментах Microsoft Office, таких как Word и Access, вы не ошибетесь с VBA и его возможностями.
MS Excel - мощный инструмент, предлагающий пользователям массу возможностей. Вы можете делать все это в Excel и его таблицах, от хранения данных до создания автоматизированных информационных панелей.
Если вы хотите использовать VBA для автоматизации задач сортировки в Excel, попробуйте эти эффективные, простые в применении макросы.
Скачать фиктивный набор данных
Для начала вы можете загрузить фиктивный набор данных, чтобы поработать над своими навыками работы с макросами в Excel.
Будьте уверены, как только вы освоите эти макросы и лучше поймете, как все работает, вы можете изменить код, чтобы он соответствовал вашим собственным таблицам для работы или учебы.
Вы можете скачать набор данных, использованный в этой статье, если хотите продолжить.
Скачать: Набор данных Excel
1. Сортировка одного столбца с помощью макросов Excel
Используйте этот простой код для сортировки столбца данных в электронной таблице Excel. Если вы скачали фиктивный набор данных, вы можете попробовать отсортировать столбец E (Продано единиц).
Откройте новый файл Excel и сохраните его с Книга Excel с поддержкой макросов (.xlsm) тип книги. В этом файле будет храниться макрос для сортировки ваших данных из другого файла.
Связанный: Лучшие онлайн-курсы для освоения Advanced Excel
Вы будете управлять своим файлом (ами) из файла макроса, который будет взаимодействовать с вашими книгами отдельно.
Введите следующий код:
Подложка sortwithheaders ()
Рабочие тетради ("Financial Sample.xlsx"). Таблицы (1). Активировать
Range ("A1: P701"). Sort Key1: = Range ("e1"), Order1: = xlAscending, Header: = xlYes
Конец подписки
Где:
- Ключ1: Определите столбцы, которые вы хотите отсортировать
- Заказ1: Метод заказа (по возрастанию / по убыванию)
- Заголовок: Если у вашего контента есть заголовки, эта опция останется как xlДа. Или выберите xlNo.
Диапазон будет состоять из начальной ячейки и адреса конечной ячейки, так что все будет захвачено для целей сортировки. В результате весь ваш набор данных будет отсортирован на основе данных в столбце E.
2. Сортировка динамических данных в одном столбце
Могут быть случаи, когда ваша начальная точка определена, но ваша конечная точка является динамической. В таком случае вы можете сделать свой код динамическим, чтобы он автоматически подбирал конец диапазона.
Чтобы учесть изменение данных, используйте приведенный ниже код:
Подложка sortwithheaders ()
Рабочие тетради ("Financial Sample.xlsx"). Таблицы (1). Активировать
Range ("A1", Range ("A1"). End (xlDown)). Sort Key1: = Range ("e2"), Order1: = xlAscending, Header: = xlYes
Конец подписки
Где:
- Конец (xlDown): Эта функция автоматически выберет последнюю заполненную ячейку.
Примечание: Если формула встречает пустую ячейку в столбце, она будет рассматривать предыдущую ячейку как конец диапазона.
Связанный: Как создать собственные сочетания клавиш в Microsoft Excel
3. Сортировка нескольких столбцов вместе
Могут возникнуть ситуации, когда вы захотите отсортировать данные по нескольким столбцам за один раз. Для этого вы можете использовать следующий код для достижения своей цели:
Sub SortMultipleColumns ()
С листами («Лист1»)
С .Cells (1, "A"). CurrentRegion
.Cells.sort Key1: =. Range ("B1"), Order1: = xlAscending, _
Key2: =. Range ("E1"), Order2: = xlAscending, _
Ориентация: = xlTopToBottom, заголовок: = xlYes
Конец с
Конец с
Конец подписки
4. Сортировка столбцов на нескольких листах
Когда вы имеете дело с несколькими листами, вы можете подготовить свои данные для размещения на панели управления. Одним из наиболее важных аспектов подготовки данных является их сортировка и получение данных в определенном формате для представления заинтересованным сторонам или клиентам.
Один из вариантов - просмотреть каждый лист вручную, отсортировать необходимые столбцы и перейти к следующему шагу. В качестве альтернативы, почему бы не позволить VBA сделать это за вас?
Целью приведенного ниже кода является циклический просмотр каждого доступного листа в книге и сортировка доступных данных на основе указанных столбцов.
Связанный: Функции поиска в Microsoft Excel для более эффективного поиска в таблицах
Вот как можно сортировать столбцы на нескольких листах:
Sub SortWS ()
Dim ws как рабочий лист
'Активируйте намеченный рабочий лист
Рабочие книги ("Financial Sample.xlsx"). Активировать
'Автоматическое переключение между отдельными листами с помощью цикла for
Для каждого ws в ActiveWorkbook. Таблицы
'активировать каждый отдельный рабочий лист
ws. Активировать
'Определите диапазон, а затем отсортируйте столбец в соответствии с вашими требованиями. В этом случае сортируется только один столбец.
Range ("A1", Range ("p1"). End (xlDown)). Sort Key1: = Range ("E1"), Order1: = xlDescending, Header: = xlYes
'Команда, используемая для перехода к следующему листу после сортировки предыдущего листа
Следующий ws
Конец подписки
Вся информация, начинающаяся с одинарных кавычек, является комментариями VBA. Они не выполняются на этапе выполнения. Однако каждый добавляемый вами комментарий VBA является значимым дополнением к коду, поскольку вы можете определять суть, функциональность и другие соответствующие части в разделах кода.
5. Копирование отсортированных данных с одного листа на другой
Представьте себе ситуацию, когда вы хотите отсортировать данные и скопировать весь набор данных (или его части) на новый добавленный лист. В таких случаях вы можете использовать приведенный ниже код для выполнения поставленной задачи:
Sub SortWS ()
Dim ws как рабочий лист
'Активируйте намеченный рабочий лист
Рабочие книги ("Financial Sample.xlsx"). Активировать
'Автоматическое переключение между отдельными листами с помощью цикла for
Для каждого ws в ActiveWorkbook. Таблицы
'активировать каждый отдельный рабочий лист
ws. Активировать
'Определите диапазон, а затем отсортируйте столбец в соответствии с вашими требованиями.
'В данном случае сортируется только один столбец.
Range ("A1", Range ("p1"). End (xlDown)). Sort Key1: = Range ("E1"), Order1: = xlDescending, Header: = xlYes
'Команда, используемая для перехода к следующему листу после сортировки предыдущего листа
Следующий ws
'Создайте новый лист в книге для хранения новых данных
ActiveWorkbook. Листы. Добавлять. Name = "Результаты"
'Скопируйте и вставьте отсортированные данные во вновь добавленный лист
Листы ("Лист1"). Диапазон ("A1: p701"). Место назначения копирования: = Листы ("Результаты"). Диапазон ("a1")
Конец подписки
Приведенный выше код отсортирует значения в столбце E, добавит новый лист Результаты в существующую книгу и вставьте отсортированные результаты в ячейку A1.
Создание макросов сортировки в Excel
Excel VBA - отличный язык, который может сэкономить вам много времени и усилий. Используя макросы VBA, вы можете создавать обширные информационные панели, легко сортировать данные несколькими щелчками мыши и с легкостью выполнять различные функции.
К счастью, возможности Excel не ограничиваются макросами. Ознакомьтесь с некоторыми советами и приемами, чтобы стать более эффективным пользователем Excel.
Независимо от того, являетесь ли вы мастером работы в Excel или только начинаете, вот девять лучших веб-сайтов и блогов, которые вы можете использовать, чтобы узнать несколько советов и уловок.
Читать далее
- Программирование
- Майкрософт Эксель
- Макросы

Гаурав Сиял имеет двухлетний опыт написания, написания для ряда фирм цифрового маркетинга и документов жизненного цикла программного обеспечения.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!
Нажмите здесь, чтобы подписаться