Vba: как отсортировать лист по нескольким столбцам
Вы можете использовать следующий базовый синтаксис для сортировки листа Excel по нескольким столбцам с помощью VBA:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
В этом конкретном примере ячейки в диапазоне A1:B11 сортируются сначала по значениям в столбце A в порядке возрастания, затем по значениям в столбце B в порядке убывания.
Обратите внимание, что Header:=xlYes указывает, что первую строку следует рассматривать как строку заголовка.
В следующем примере показано, как использовать этот синтаксис на практике.
Пример. Сортировка листа Excel по нескольким столбцам с использованием VBA
Допустим, у нас есть следующий набор данных в Excel, содержащий информацию о различных баскетболистах:
Предположим, мы хотим отсортировать набор данных следующим образом:
- Сначала отсортируйте значения в столбце «Команда» в порядке возрастания (от А до Я).
- Далее отсортируйте значения в столбце «Точки» в порядке убывания (от большего к меньшему).
Для этого мы можем создать следующий макрос:
Sub SortMultipleColumns()
Range(" A1:B11 ").Sort Key1:=Range(" A1 "), Order1:=xlAscending, _
Key2:=Range(" B1 "), Order2:=xlDescending, _
Header:=xlYes
End Sub
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Строки теперь сортируются по названию команды в порядке возрастания и по очкам в порядке убывания.
Примечание № 1. В этом примере мы сортировали данные по двум столбцам. Однако вы можете указать столько ключей, сколько хотите, чтобы отсортировать еще больше столбцов.
Примечание №2 . Полную документацию по методу сортировки VBA можно найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:
VBA: как написать функции СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИФС
VBA: как писать функции СУММЕСЛИ и СУММЕСЛИ
VBA: как писать функции COUNTIF и COUNTIFS