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: як написати функції AVERAGEIF і AVERAGEIFS
VBA: як написати функції SUMIF і SUMIFS
VBA: як написати функції COUNTIF і COUNTIFS

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *