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

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

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