VBA Excel. Сортировка таблицы (диапазона)

Автор: | 31.05.2022

Сортировка данных в таблице в электронной таблице Excel с помощью VBA. Sort и SortField, объекты и методы. Примеры сортировки данных в диапазон.

 

Синтаксис сортировки

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

1 2 3 4 5 6 7 8 9 С Expression.Sort .SortFields.Clear .SortFields.Add Key, SortOn, Order, DataOption .SetRange [Range] .Header = [xlGuess, xlYes, xlNo].MatchCase = [True, False]. Orientation = [xlTopToBottom, xlLeftToRight] .Применить Конец с

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

1 2 3 4 5 6 С Expression.Sort .SortFields.Clear .SortFields.Add Key .SetRange [Range].Apply End With

Выражение — это выражение, которое возвращает объект Worksheet, например:

1 2 3 4 Рабочие листы ActiveSheet («Лист1») ActiveWorkbook.Worksheets («Лист1») Workbooks («Book1.xlsm»). Рабочие листы («Лист1»)

 

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

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:

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

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

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

Постоянный Смысл Описание
Сортировать по значениям 0 сортировать по значению (по умолчанию)
SortOnCellColor а сортировать по цвету ячейки
Сортировать по цвету шрифта два сортировать по цвету шрифта
СортИнИкон 3 сортировать по иконке*

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

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

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

Постоянный Смысл Описание
кслАсцендент а в порядке возрастания (по умолчанию)
xlПо убыванию два в порядке убывания

DataOption — необязательный параметр, указывающий способ сортировки текста.

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

Постоянный Смысл Описание
кслсортнормальный 0 числовые и текстовые данные сортируются отдельно (по умолчанию)
кслсорттекстаснумберс а текстовые данные обрабатываются как числовые для классификации

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

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

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

Постоянный Смысл Описание
угадай xl 0 Excel сам определяет, есть ли строка заголовка
xlДа а есть строка заголовка, сортировка на нее не влияет
xL Нет два нет строки заголовка (по умолчанию)

6.MatchCase = [True, False]: свойство MatchCase объекта Sort указывает, насколько регистрозависимой должна быть сортировка.

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

Постоянный Смысл Описание
Подделка 0 с учетом регистра (по умолчанию)
Определенный а сортировка с учетом регистра

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

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

Постоянный Смысл Описание
xlСверху вниз а сортировать по действиям (по умолчанию)
xlСлева направо два сортировать по столбцам

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

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

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

 

 

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

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

1 2 3 4 5 6 7 8 Sub Primer1() с ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range(«A2») .SetRange Range(«A2:C7») .Apply End With End Sub

Полный ввод, но и с параметрами по умолчанию:

1 2 3 4 5 6 7 8 9 10 11 Sub Primer2() с ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range(«A2»), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range(«A2:C7») .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .Apply End With End Sub

Сортировать результат:

 

 

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

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

1 2 3 4 5 6 7 8 9 Sub Primer3() с ActiveSheet.Sort .SortFields.Clear .SortFields.Add Key:=Range(«A2») .SortFields.Add Key:=Range(«B2») .SetRange Range(«A2:C7») .Apply Конец с End Sub

Сортировать результат:

 

Применение сортировки ко второму столбцу (добавление еще одного объекта SortField) не нарушает сортировку первого: в первом столбце меняются местами только ячейки с одинаковыми значениями.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *