Vba excel сортировка по столбцу

Обновлено: 04.07.2024

Синтаксис полного кода VBA Excel, применяемого для сортировки данных в таблицах и диапазонах:

Синтаксис сокращенного кода VBA Excel, применяемого для сортировки данных с параметрами по умолчанию:

Expression – выражение, возвращающее объект Worksheet, например:

Расшифровка кода

1. Expression.Sort – метод Sort объекта Worksheet возвращает объект Sort.

Объект Sort – это объект, представляющий сортировку диапазона данных.

2. .SortFields.Clear – метод SortFields объекта Sort возвращает коллекцию объектов SortFields. Метод Clear объекта SortFields удаляет все существующие объекты SortField.

Объект SortField содержит все сведения о параметрах сортировки для заданного рабочего листа.

3. .SortFields.Add Key, SortOn, Order, DataOption – метод Add объекта SortFields создает и возвращает новый экземпляр объекта SortField с заданными параметрами.

Параметры метода Add объекта SortFields:

Key – обязательный параметр, который задает значение ключа для сортировки. Тип данных – Range. Обычно указывается первая ячейка столбца при сортировке по строкам или первая ячейка строки при сортировке по столбцам. Сортировка диапазона будет осуществлена по данным столбца (строки), первая ячейка которого указана в качестве ключа.

SortOn – необязательный параметр, который задает критерий сортировки (по какому свойству ячеек производится сортировка).

Значения, которые может принимать SortOn:

Константа Значение Описание
SortOnValues 0 сортировка по значению (значение по умолчанию)
SortOnCellColor 1 сортировка по цвету ячейки
SortOnFontColor 2 сортировка по цвету шрифта
SortOnIcon 3 сортировка по иконке*

* Иконки (значки) могут быть заданы ячейкам при условном форматировании диапазона.

Order – необязательный параметр, задающий порядок сортировки (по возрастанию или по убыванию).

Значения, которые может принимать Order:

Константа Значение Описание
xlAscending 1 сортировка по возрастанию (значение по умолчанию)
xlDescending 2 сортировка по убыванию

DataOption – необязательный параметр, который задает способ сортировки текста.

Значения, которые может принимать DataOption:

Константа Значение Описание
xlSortNormal 0 числовые и текстовые данные сортируются отдельно (значение по умолчанию)
xlSortTextAsNumbers 1 текстовые данные рассматриваются для сортировки как числовые

4. .SetRange [Range] – метод SetRange объекта Sort задает диапазон (таблицу), в котором выполняется сортировка.

5. .Header = [xlGuess, xlYes, xlNo] – свойство Header объекта Sort указывает, является ли первая строка таблицы строкой заголовков (шапкой).

Значения, которые может принимать свойство Header:

Константа Значение Описание
xlGuess 0 Excel сам определяет, есть ли строка заголовков
xlYes 1 строка заголовков есть, сортировка ее не затрагивает
xlNo 2 строки заголовков нет (значение по умолчанию)

6. .MatchCase = [True, False] – свойство MatchCase объекта Sort указывает, как учитывать регистр при сортировке.

Значения, которые может принимать свойство MatchCase:

Константа Значение Описание
False 0 регистр не учитывается (значение по умолчанию)
True 1 сортировка с учетом регистра

7. .Orientation = [xlTopToBottom, xlLeftToRight] – свойство Orientation объекта Sort задает ориентацию для сортировки.

Значения, которые может принимать свойство Orientation:

Константа Значение Описание
xlTopToBottom 1 сортировка по стокам (значение по умолчанию)
xlLeftToRight 2 сортировка по столбцам

8. .Apply – метод Apply объекта Sort выполняет сортировку диапазона в соответствии с примененными параметрами.

Примеры сортировки

Таблица для примеров


Сортировка по одному столбцу

Краткая запись кода VBA Excel для сортировки диапазона по первому столбцу с параметрами по умолчанию:


Существуют разные способы сортировки данных в Microsoft Excel. Под вкладкой Excel Data находится значок сортировки, откуда вы можете быстро отсортировать данные и получить результаты. Почему тогда нужно писать сложный код VBA?

Вы должны помнить это каждый раз, коды VBA существуют для автоматизации вещей. Предположим, у вас есть данные, которые время от времени обновляются. Может быть, каждый день, еженедельно, ежемесячно и т. Д., И вам нужны ваши данные определенным образом. В таких случаях можно использовать функцию VBA SORT, которая станет удобным инструментом для вашей справки.

VBA имеет метод Range.Sort для сортировки данных. Где Range указывает диапазон ячеек, которые мы хотим отсортировать в порядке возрастания или убывания.

Синтаксис для Range.Sort приведен ниже:


  • Ключ - столбец / диапазон, который нужно отсортировать. Ex. Если вы хотите отсортировать ячейки A1: A10, вы должны упомянуть Range (A1: A10)
  • Порядок - это параметр, который позволяет сортировать данные в порядке возрастания или убывания.
  • Заголовок - это параметр, который указывает, имеет ли ваш столбец / диапазон заголовки или нет.

Этих трех параметров достаточно для нашей работы. Однако есть некоторые другие параметры, такие как MatchCase, SortMethod и т. Д., Которые вы всегда можете изучить и посмотреть, как они работают.

Как использовать функцию сортировки Excel VBA?

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

Вы можете скачать этот шаблон VBA Sort Excel здесь - Шаблон VBA Sort Excel

Функция сортировки VBA - пример № 1

Сортировка одного столбца без заголовка

Предположим, у вас есть столбец с именами, как показано ниже, и все, что вам нужно, это отсортировать эти данные в алфавитном порядке в порядке возрастания или убывания.


Выполните следующие шаги, чтобы использовать функцию сортировки в VBA.

Шаг 1: Определите новую sup-процедуру в модуле и создайте макрос.

Код:


Шаг 2: Используйте функцию Range.Sort для сортировки этого столбца в порядке возрастания.

Код:


Здесь вы даете диапазон, начиная с ячейки A1 до последней использованной / непустой ячейки (см. Функцию .End (xlDown)) для функции Range.Sort.

Шаг 3: Теперь введите значения аргумента.

Код:


Как мы уже обсуждали ранее, Key, Order и Header являются важными и необходимыми аргументами, которые необходимо предоставить. В качестве начального диапазона столбца мы указали Range («A1»), который нам нужно отсортировать. Порядок предоставляется в порядке возрастания, а заголовок - как нет (что означает, что столбец не имеет заголовка).

Этот код проверяет все непустые ячейки, начиная с A1, а затем сортирует их в порядке возрастания, начиная с ячейки A1.

Шаг 4: Запустите этот код, нажав F5 или кнопку Run вручную и посмотрите результат.

Если вы можете сравнить это с изображением в начале этого примера, вы увидите, что имена отсортированы в порядке возрастания.

Функция сортировки VBA - пример № 2

Сортировка одной колонки с заголовком

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


Выполните следующие шаги, чтобы использовать функцию сортировки в VBA.

Шаг 1: Определите новую подпроцедуру в новой модели для хранения макроса.

Код:


Код:


Шаг 3: Используйте Range («A1»). Сортируйте перед приведенной выше строкой кода, чтобы сделать ее функцией сортировки.

Код:


Шаг 4: Введите Key1 как Range («A1») для сортировки данных из ячейки A1, Order1, чтобы отсортировать данные в порядке возрастания или убывания, и Header как « Да», чтобы система знала, что первая строка является заголовком в вашем данные.

Код:


Шаг 5: Запустите этот код, нажав F5 или кнопку Run вручную и посмотрите результат.

Здесь данные из примера № 2 данной рабочей книги Excel сортируются в порядке возрастания, учитывая, что они имеют заголовок. Это означает, что при сортировке этих данных первая строка (которая содержит имя Emp ) игнорируется, поскольку она рассматривается как заголовок для этих данных в столбце A.

Вы также можете отсортировать те же данные в порядке убывания алфавитов. Все, что вам нужно сделать, это изменить порядок с возрастания на убывание.

Шаг 6: Измените order1 на нисходящий, чтобы отсортировать данные в порядке убывания.

Код:


Шаг 7: Запустите код и посмотрите вывод, как показано ниже.

Вы можете видеть, что данные отсортированы в порядке убывания.

Функция сортировки VBA - пример № 3

Сортировка нескольких столбцов с заголовками

До сих пор мы рассмотрели, как сортировать данные одного столбца в порядке возрастания или убывания (без заголовка и с заголовком). Что если у вас есть данные, которые нужно отсортировать по нескольким столбцам? Можно ли написать код для того же?

Ответ: «Да, конечно, это можно сделать!»

Предположим, у вас есть данные, указанные ниже:


Вы хотели отсортировать эти данные сначала по Emp Name, а затем по Location. Выполните следующие шаги, чтобы увидеть, как мы можем кодировать его в VBA.

Шаг 1: Определите новую подпроцедуру для добавления макроса в новый модуль.

Код:


Шаг 2: Используйте оператор With… End With, чтобы добавить несколько условий сортировки в одном цикле.

Код:


Шаг 3: Теперь используйте SortFields.Add, чтобы добавить несколько условий сортировки в одном листе.

Код:


Шаг 4: Определите диапазон листов для сортировки и заголовок На следующем шаге.

Код:


Шаг 5: Используйте .Apply, чтобы применить все это под оператором with и закрыть цикл, пишущий End With.

Код:


Шаг 6: Запустите этот код, нажав F5 или кнопку Run вручную, и увидите результат.

В этом коде ActiveSheets.Sort помогает системе идентифицировать лист, по которому должны быть отсортированы данные. SortFields.Add позволяет добавлять два условия сортировки с их порядком (по возрастанию в обоих случаях). SetRange позволяет системе установить диапазон от A1 до C13. Вы также можете увеличить этот диапазон. Операторы Apply позволяют системе применять все изменения, сделанные в цикле With.

Наконец, вы получите данные, которые отсортированы по имени Emp сначала, а затем по местоположению.

То, что нужно запомнить

  • Под сортировкой VBA вы можете создавать именованные диапазоны вместо ссылок на ячейки и использовать их. Ex. Если вы создали именованный диапазон для ячейки A1: A10 как «EmpRange», вы можете использовать его в Range.Sort, например Range («EmpRange»).
  • Вы можете сортировать данные как по возрастанию, так и по убыванию, как в Excel.
  • Если вы не уверены, есть ли у ваших данных заголовок или нет, вы можете использовать xlGuess в разделе заголовка, чтобы система могла угадать, является ли первая строка данных заголовком или нет.

Рекомендуемые статьи

Это было руководство по сортировке Excel VBA. Здесь мы обсудили VBA Sort и как использовать Excel VBA Sort Function вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

Операция сортировки упорядочивает элементы последовательности на основе одного или нескольких атрибутов. Первый критерий сортировки выполняет первичную сортировку элементов. Указав второй критерий поиска, можно сортировать элементы внутри каждой группы первичной сортировки.

На следующем рисунке показаны результаты операции сортировки в алфавитном порядке в последовательности символов.

Рисунок с операциями сортировки в алфавитном порядке.

Далее перечислены методы стандартных операторов запроса, которые выполняют сортировку данных.

Методы

Имя метода Описание Visual Basic Синтаксис выражения запроса Дополнительные сведения
OrderBy Сортировка значений в возрастающем порядке. Order By Enumerable.OrderBy

Примеры синтаксиса выражений запросов

Примеры основной сортировки

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

В следующем примере показано использование предложения Order By в запросе LINQ для сортировки строк в массиве по длине строки в порядке возрастания.

Основная сортировка по убыванию

В следующем примере показано использование предложения Order By Descending в запросе LINQ для сортировки строк по их первой букве в порядке убывания.

Примеры дополнительной сортировки

Дополнительная сортировка по возрастанию

В следующем примере показано использование предложения Order By в запросе LINQ для выполнения основной и дополнительной сортировки строк в массиве. Строки сортируются основным образом по длине и дополнительно — по первой букве строки; в обоих случаях в возрастающем порядке.

Дополнительная сортировка по убыванию

В следующем примере показано использование предложения Order By Descending в запросе LINQ для выполнения основной сортировки по возрастанию и дополнительной сортировки по убыванию. Строки сортируются основным образом по длине и дополнительно — по первой букве строки.


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

Структура рабочей книги такова, что она допускает данные в табличном формате. Кроме того, он позволяет просматривать данные различными способами, используя следующие функции:

Сегодня мы обсудим сортировку по номеру в Excel.

Сортировка - это метод, который позволяет пользователю упорядочивать данные. Текстовые данные могут быть расположены в алфавитном порядке или в обратном алфавитном порядке. Числовые данные могут быть расположены в порядке возрастания или в порядке убывания. Данные о дате могут быть упорядочены в порядке от самого старого до самого нового или в порядке от самого нового до самого старого. Кроме того, мы можем отсортировать данные по одному критерию или по нескольким критериям.

Сегодня мы будем работать над сортировкой по номеру в Excel.

Как реализовать сортировку по номеру в Excel?

Сортировка по номеру в Excel очень проста и удобна в использовании. Это руководство по сортировке по номеру Excel с подробными примерами. В Excel мы можем найти опцию сортировки в двух местах:

  • На вкладке «Файл» - в разделе «Редактирование группы» - щелкните раскрывающееся меню «Сортировка и фильтр».
    • Затем сортируйте от A до Z или от Z до A для текстовых данных.
    • Затем сортируйте данные от даты к возрасту или от даты к дате.
    • Затем сортируйте по величине и наименьшему и по величине по величине для числовых данных.


    • На вкладке «Данные» - в группе «Сортировка и фильтры»
      • Затем сортируйте от A до Z или от Z до A для текстовых данных.
      • Затем сортируйте данные от даты к возрасту или от даты к дате.
      • Затем сортируйте по величине и наименьшему и по величине по величине для числовых данных.


      Мы также можем использовать опцию Пользовательская сортировка для данных, отсортированных по нескольким критериям. В Excel мы можем найти опцию сортировки в двух местах:

      • На вкладке «Файл» - в разделе «Редактирование группы» - нажмите на выпадающее меню «Сортировка и фильтр» - нажмите «Выборочная сортировка».


      • На вкладке «Данные» - в группе «Сортировка и фильтрация» - нажмите «Сортировать».


      После этого откроется диалоговое окно «Выборочная сортировка», как показано на следующем рисунке:


      Мы найдем три заголовка:

      • Столбцы: мы найдем все заголовки столбцов таблицы или диапазона.
      • Сортировка: это даст нам описание данных о значениях, цвете ячейки, цвете шрифта и значке ячейки.
      • Заказ: Мы также можем выбрать заказ от наименьшего к наибольшему или от наибольшего к наименьшему.

      Мы также можем использовать следующие вкладки:

      • Добавить уровень: чтобы добавить один или несколько критериев.
      • Удалить уровень: для удаления выбранного критерия или критериев.
      • Уровень копирования: для копирования существующего критерия или критериев.

      Примеры сортировки по номеру в Excel

      Существует два типа сортировки:

      • Один уровень или сортировка по одному столбцу
      • Многоуровневая сортировка двух или более столбцов

      Давайте разберем работу Сортировка по номеру в Excel на нескольких примерах.

      Вы можете скачать эту Сортировку по номеру шаблона Excel здесь - Сортировать по номеру шаблона Excel

      Сортировка по номеру в Excel - пример № 1

      Одноуровневая сортировка или сортировка по одному столбцу - это сортировка данных по одному столбцу.


      На приведенном выше рисунке сортировка данных с использованием Employee Basic Pay является одноуровневой сортировкой.


      • Шаг 2: Либо перейдите на вкладку «Файл» - в разделе «Редактирование группы» - нажмите « Сортировка» и « Раскрывающееся меню фильтра» - нажмите « Выборочная сортировка».
      • Перейдите на вкладку « Данные » - в разделе « Сортировка и группа фильтров » - нажмите « Сортировать» .


      • Шаг 3: Теперь установите флажок Мои данные имеют заголовки, чтобы первая строка выбранных данных A2: B12 принималась как заголовок, а не как данные.


      • Шаг 4. Теперь нажмите на раскрывающееся меню «Сортировка», чтобы выбрать заголовок столбца « Базовая оплата сотрудников».
      • Шаг 5: Затем в раскрывающемся меню «Заказ» выберите « От самого маленького до самого большого» .
      • Шаг 6: Нажмите на ОК .

      После всех настроек сортировки по номеру в Excel результат будет выглядеть следующим образом:


      Сортировка по номеру в Excel - пример № 2



      • Шаг 2: Либо перейдите на вкладку «Файл» - в разделе « Редактирование группы» - нажмите « Сортировка» и « Раскрывающееся меню фильтра» - нажмите « Выборочная сортировка» .
      • Перейдите на вкладку « Данные » - в группе « Сортировка и фильтрация » - нажмите « Сортировать».


      • Шаг 3: Теперь установите флажок Мои данные имеют заголовки, чтобы первая строка выбранных данных A1: G13 принималась как заголовок, а не как данные.


      • Шаг 4. Теперь нажмите на раскрывающееся меню «Сортировка», чтобы выбрать заголовок столбца « Категория книги».
      • Шаг 5: Затем в выпадающем меню заказа выберите от A до Z или от Z до A.
      • Шаг 6: Затем нажмите « Добавить уровень» для добавления других критериев.
      • Шаг 7. Теперь нажмите на раскрывающееся меню « Сортировка», чтобы выбрать заголовок столбца « Всего продаж».
      • Шаг 8: Затем в выпадающем меню заказа выберите S от Малейшего до Наибольшего или от Наибольшего до Наименьшего .
      • Шаг 9: Нажмите на ОК .

      После добавления всех параметров для сортировки по номеру в Excel, результат будет выглядеть следующим образом:


      То, что нужно запомнить

      • Наши данные будут перемешаны и отчеты будут неверными, если мы не отсортируем всю таблицу данных или диапазон.
      • Мы должны установить флажок, мои данные имеют заголовки, чтобы Excel мог понимать первую строку как заголовок столбца, а не как данные.
      • Мы можем отсортировать числовые значения по Сортировке по номеру в Excel как от меньшего к большему, так и от наибольшего к наименьшему.
      • Мы можем отсортировать текстовые значения от А до Я или от Я до А.
      • Мы можем отсортировать даты по самым старым, самым новым, самым новым и самым старым.
      • Мы можем добавить много уровней, таких как одноуровневый или многоуровневый, чтобы мы могли изменить или изменить дату в соответствии с нашими требованиями.
      • Мы можем сортировать только один цвет за раз относительно сортировки на основе цвета ячейки или цвета шрифта.

      Рекомендуемые статьи

      Это было руководство по сортировке по номеру в Excel. Здесь мы обсудили, как сортировать по номеру в Excel и как реализовать сортировку по номеру в Excel вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

      Читайте также: