VBA для сортування стовпця в Excel (4 способи)

  • Поділитися Цим
Hugh West

Для сортування в Excel за допомогою VBA Вам необхідно подати заявку на участь у конкурсі Range.Sort У цій статті ми покажемо вам, як відсортувати стовпець в Excel за допомогою Range.Sort метод VBA .

Завантажити Робочий зошит

Ви можете завантажити безкоштовну практичну книгу Excel тут.

Сортування стовпця за допомогою VBA.xlsm

Метод Сортування діапазону в Excel VBA

Range.Sort метод в VBA сортує діапазон значень в Excel. Тут Діапазон об'єктна змінна, яка задає діапазон комірок, які ми хочемо сортувати за зростанням або спаданням.

Нижче наведені параметри, про які необхідно знати при роботі з цим методом.

Параметр Обов'язково/необов'язково Тип даних Опис
Ключ За бажанням Варіант Вказує діапазон або стовпець, значення якого потрібно відсортувати.
Замовлення За бажанням XlSortOrder Вказує порядок, в якому буде виконуватися сортування.
  • xlЗростання = Сортувати за зростанням.
  • xlПо спадаючій = Для сортування за спаданням.
Заголовок За бажанням XlYesNoGuess Вказує, чи містить перший рядок заголовки чи ні.
  • xlНі = Коли стовпець не має заголовків; значення за замовчуванням.
  • xlТак = Коли стовпці мають заголовки.
  • xlЗдогадайся = Дозволити Excel визначати заголовки.

4 Способи реалізації VBA для сортування стовпця в Excel

У цьому розділі ви дізнаєтеся, як сортування одного стовпця із заголовком і без нього , кілька колонок із заголовками та без них і як це зробити сортувати, просто двічі клацнувши по заголовку в стовпчику в Excel.

1. Вбудовуємо VBA для сортування одного стовпця без заголовка в Excel

Якщо ви хочете сортування одного стовпця у вашому аркуші Excel за допомогою VBA потім виконайте наступні дії.

Це наша колонка, за допомогою якої ми будемо сортувати VBA код.

Сходинки:

  • Преса Alt + F11 на клавіатурі або перейдіть на вкладку Розробник - Visual Basic відкрити Редактор Visual Basic .

  • У вікні коду, що з'явилося, в рядку меню, що з'явилося, натисніть Вставка -> Модуль .

  • Скопіюйте наступний код та вставте його у вікно коду.
 Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Ваш код тепер готовий до запуску.

Ось,

  • Key1:=Range("B5") → Зазначено B5 щоб код знав, який стовпець сортувати.
  • Order1:=xlЗа зростанням → Вказав наказ як xlЗростання щоб відсортувати стовпець за зростанням. Якщо ви хочете відсортувати стовпець за спаданням, то напишіть xlПо спадаючій натомість.
  • Заголовок:= xlNo → Оскільки наш стовпець не має заголовка, то ми вказали його за допомогою xlНі варіант.

  • Преса F5 на клавіатурі або в рядку меню виберіть Виконати -> Run Sub/UserForm Ви також можете просто натиснути на кнопку маленька іконка відтворення в рядку підменю для запуску макросу.

Ви побачите, що ваша колонка тепер відсортовано за зростанням .

Зверніть увагу, що тут ми визначили діапазон даних вручну як Range("B5:B15") .

Якщо ви хочете змінити дані, додавши або видаливши значення, ви можете реалізувати наступний код, який автоматично оновлюється на основі комірок у наборі даних.

 Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub 

Зверніть увагу, що замість визначення діапазону вручну за допомогою Range("B5:B15") ми вже писали, Range( "B5", Range("B5"). End(xlDown)) .

Це дозволить відсортувати стовпець на основі останньої послідовно заповненої комірки в ньому. Якщо є порожні комірки, дані будуть розглядатися тільки до першої порожньої комірки.

Читати далі: Сортування таблиці в VBA в Excel (4 способи)

2. вставка макросу VBA для сортування одного стовпця із заголовком

У попередньому розділі ми мали набір даних з одного стовпця без заголовка, а тепер маємо a стовпчик із заголовком .

Цього разу ми навчимося сортувати його за допомогою Макрос VBA .

Сходинки:

  • Як і раніше, відкрито Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
  • У вікні коду скопіюйте наступний код та вставте його.
 Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub 

Ваш код тепер готовий до запуску.

Ось,

  • Key1:=Range("B5") → Зазначено B5 щоб код знав, який стовпець сортувати.
  • Order1:=xlDescending → Цього разу ми відсортуємо стовпець за спаданням, тому задамо такий порядок xlПо спадаючій .
  • Заголовок:= xlYes → Оскільки в нашому стовпчику є заголовок, то ми вказали його за допомогою параметра xlТак варіант.

  • Біжи цей код і ви отримаєте стовпець із заголовком, відсортований за спаданням .

Читати далі: Як сортувати ListBox за допомогою VBA в Excel (повний посібник)

Схожі читання:

  • Як відсортувати IP-адреси в Excel (6 способів)
  • [Вирішено!] Не працює сортування в Excel (2 рішення)
  • Як додати кнопку сортування в Excel (7 способів)
  • Сортування діапазону за допомогою VBA в Excel (6 прикладів)
  • Як сортувати за назвою в Excel (3 приклади)

3. макрос VBA для сортування декількох стовпців із заголовком або без нього

Ви також можете сортувати кілька стовпців у наборі даних за допомогою коду VBA.

Сходинки:

  • Як було показано раніше, відкриті Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
  • У вікні коду скопіюйте наступний код та вставте його.
 Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Key:=Range("B4"), Order:=xlAscending .SortFields.Add Key:=Range("C4"), Order:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End Sub 

Ваш код тепер готовий до запуску.

Ось,

.SortFields.Add Key:=Range("B4"), Order:=xlAscending

.SortFields.Add Key:=Range("C4"), Order:=xlAscending

Під цими двома напрямками ми розуміємо Комірка B4 і C4 для сортування дві пов'язані з ними колонки в за зростанням .

Оскільки в нашому наборі даних є заголовки, то ми вказали Заголовок = xlYes інакше ми б написали Header = xlNo всередині коду.

  • Біжи цей код і ви отримаєте стовпці із заголовком відсортовані за зростанням .

4. Макрос для сортування даних за подвійним кліком на заголовку в Excel

Якщо ви хочете з легкістю сортувати дані лише за подвійне клацання по заголовку Ви можете зробити це за допомогою VBA код.

Сходинки:

  • Клацніть правою кнопкою миші на вкладка аркуша .
  • У списку варіантів, що з'явився, натисніть Переглянути код .
  • З'явиться вікно коду, скопіюйте наступний код і вставте його туди.
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iRange As Range Dim iCount As Integer iCount = Range("B15:D15").Columns.Count Cancel = False If Target.Row = 4 And Target.Column <= iCount Then Cancel = True Set iRange = Range(Target.Address) Range("B15:D15").Sort Key1:=iRange, Header:=xlYes End If End Sub 
  • Зберегти код.

  • Тепер поверніться до аркуша, який вас цікавить, і якщо ви двічі клацніть по заголовкам ви побачите, що колонки реорганізуються.

Читати далі: Як сортувати та фільтрувати дані в Excel (повне керівництво)

Важливі моменти для запам'ятовування

  • Ви можете створити іменований діапазон і використовувати його, коли ви передаєте діапазон посилань на комірки всередині Сортування Наприклад, якщо потрібно відсортувати діапазон A1:A10 замість того, щоб кожного разу передавати його всередині коду, можна створити з нього іменований діапазон, наприклад " SortRange " і використовуйте його з Range.Sort такий метод, як Range("SortRange") .
  • Якщо ви не впевнені, чи є у вашому наборі даних заголовки чи ні, ви можете дозволити системі визначити це за допомогою кнопки xlGuess параметр.

Висновок

У цій статті ви дізнаєтеся, як відсортувати стовпець в Excel VBA Сподіваюся, ця стаття була для вас дуже корисною. Не соромтеся запитувати, якщо у вас виникнуть запитання щодо цієї теми.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.