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

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

Впровадження Макрос VBA це найефективніший, найшвидший і найбезпечніший спосіб виконати будь-яку операцію в Excel. У цій статті ми покажемо вам, як сортування таблиці в Excel з VBA .

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

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

Сортування таблиці за допомогою VBA.xlsm

Що потрібно знати перед впровадженням VBA для сортування таблиць в Excel

Існує ряд параметрів, які доводиться часто використовувати при роботі з Сортування метод VBA Тому тут ми обговоримо деякі параметри, щоб ви могли ознайомитися з ними під час написання коду.

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

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

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

1. Вбудовуємо VBA для сортування таблиці за значенням в Excel

Розглянемо наступний приклад відсортувати цю таблицю за значеннями присутніх на Марк стовпчик у порядку спадання.

Сходинки:

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

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

  • Скопіюйте наступний код та вставте його у вікно коду.
 Sub SortTableValue() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTBL") Set iColumn = Range("SortTBL[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn, SortOn:=xlСортуванняЗаЗначеннями, Order:=xlЗаспадженням .Header = xlДа .Apply End With End Sub 

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

Ось,

  • SortTBL → Вказано назву таблиці.
  • SortTBL[Marks][Позначки] -> Вказано назву стовпця таблиці для сортування.
  • Key1:=iColumn → Вказано діапазон стовпців, щоб код знав, який стовпець в таблиці сортувати.
  • Order1:=xlDescending → Вказав наказ як xlПо спадаючій щоб відсортувати стовпець за спаданням. Якщо ви хочете відсортувати стовпець за зростанням, то напишіть xlЗростання натомість.
  • Заголовок:= xlYes → Оскільки стовпець у цій таблиці має заголовок, то ми вказали його за допомогою xlТак варіант.

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

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

Читати далі: Як сортувати дані за значенням в Excel (5 простих способів)

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

Ви також можете сортування таблиці за кількома стовпцями в Excel з VBA макрос.

З наведеної вище таблиці відсортуємо колонки Ім'я і Департамент в порядку зростання.

Сходинки:

  • Як і раніше, відкрито Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
  • У вікні коду скопіюйте наступний код та вставте його.
 Sub SortTable() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("Значення таблиці") Set iColumn1 = Range("Значення таблиці[ПІБ]") Set iColumn2 = Range("Значення таблиці[Відділ]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscenting .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub 

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

Ось,

  • ТаблицяЗначення → Вказано назву таблиці.
  • TableValue[Ім'я] - значення таблиці -> Вказано ім'я першого стовпця таблиці для сортування.
  • TableValue[Відділ] -> Вказано ім'я другого стовпця таблиці для сортування.
  • Key1:=iColumn1 → Вказано діапазон стовпців, щоб код знав, що перший стовпець у таблиці потрібно відсортувати.
  • Ключ1:=iСтовпець2 → Вказано діапазон стовпців, щоб код знав, що другий стовпець у таблиці потрібно відсортувати.
  • Order1:=xlЗа зростанням → Вказав наказ як xlЗростання Якщо ви хочете відсортувати стовпець за спаданням, то напишіть xlПо спадаючій натомість.
  • Заголовок:= xlYes → Оскільки стовпці цієї таблиці мають заголовки, то ми вказали їх за допомогою xlТак варіант.

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

Читати далі: Як автоматично сортувати кілька стовпців у Excel (3 способи)

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

  • Як відсортувати унікальний список в Excel (10 корисних способів)
  • Сортування масиву в Excel VBA (за зростанням та спаданням)
  • Як сортувати та фільтрувати дані в Excel (повна інструкція)
  • Автоматичне сортування Excel при зміні даних (9 прикладів)
  • Випадкове сортування в Excel (формули + VBA)

3. Реалізація макросу для сортування таблиці за кольором комірок в Excel

Ви також можете відсортувати таблицю за кольором комірок що в ньому міститься.

На прикладі наведеної вище таблиці ми покажемо, як сортувати її на основі кольорів, які містить ця таблиця.

Сходинки:

  • Як було показано раніше, відкриті Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
  • У вікні коду скопіюйте наступний код та вставте його.
 Sub SortTableColor() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("SortTable") Set iColumn = Range("SortTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Ключ:=iColumn, Порядок:=xlAscending, СортуванняЗа:=xlСортуванняЗаКольоромКлітинок).СортуванняЗаКольоромКлітинок.Колір=RGB(248,203,173) .SortFields.Add(Ключ:=iСтовпець,Порядок:=xlAscending, СортуванняЗа:=xlSortOnCellColor).КолірЗначення = RGB(255, 217, 102) .ПоляСортування.Додати(Ключ:=iСтовпчик, Порядок:=xlAscending, СортуванняЗа:=xlSortOnCellColor).КолірЗначення = RGB(198, 224, 180) .ПоляСортування.Додати(Ключ:=iСтовпчик, Порядок:=xlAscending, СортуванняЗа:=xlSortOnCellColor).КолірЗначення = RGB(180, 198, 231) .Заголовок = xlTrue .Застосувати КінецьЗавершенняЗКінцяСередньогоРяду 

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

Ось тут і відбулася RGB кодів, які ми надали, ви можете знайти його або будь-який інший RGB код, який вам потрібен, перейшовши за gif-файлом, наведеним нижче.

  • Просто натисніть на кнопку кольорова комірка .
  • В рамках проекту Головна сторінка на вкладці "Вкладка" натисніть на кнопку стрілка біля пункту Колір заливки потім виберіть Більше кольорів Ви побачите RGB коди в Нестандартний у вкладці, що з'явилася Кольори спливаюче вікно.

  • Біжи цей код і ваша таблиця буде відсортовані за кольорами .

Читати далі: Як сортувати за кольором в Excel (4 критерії)

4. застосувати VBA для сортування таблиці Excel за піктограмою

Припустимо, що таблиця набору даних має піктограми для кращої читабельності. Ви можете відсортувати таблиця на основі іконок в Excel з VBA макрос.

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

Зверніть увагу, що якщо ви не знаєте, як вставити піктограму всередину комірки, ви можете просто зробити це за допомогою кнопки Умовне форматування в Excel.

  • Виберіть весь діапазон або стовпчик.
  • Перейдіть до Умовне форматування - набори піктограм Потім виберіть будь-які набори піктограм, які ви хочете, з опції.

Кроки до сортувати таблицю на основі іконок наведені нижче.

Сходинки:

  • Відкрито Редактор Visual Basic від Розробник вкладка та Вставка a Модуль у вікні коду.
  • У вікні коду скопіюйте наступний код та вставте його.
 Sub SortTableIcon() Dim iSheet As Worksheet Dim iTable As ListObject Dim iColumn As Range Set iSheet = ActiveSheet Set iTable = iSheet.ListObjects("IconTable") Set iColumn = Range("IconTable[Marks]") With iTable.Sort .SortFields.Clear .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(1) .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(2)   .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(3)   .SortFields.Add(Key:=iColumn, Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(4)   .SortFields.Add(Key:=iColumn,Order:=xlDescending, SortOn:=xlSortOnIcon).SetIcon Icon:=ActiveWorkbook.IconSets(xl5Arrows).Item(5) .Header = xlYes .Apply End With End Sub 

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

Ось,

  • xl5Стрілки -> Ми обрали набір з 5 стріл від варіанту, наведеного в Умовне форматування .
  • Пункт (1) -> Зазначено, що перший тип піктограми зі стрілкою.
  • Пункт (2) -> Зазначено, що другий тип піктограми зі стрілкою.
  • Пункт (3) -> Зазначено, що третій тип піктограми зі стрілкою.
  • Пункт (4) -> Зазначено, що четвертий тип піктограми зі стрілкою.
  • Пункт (5) -> Зазначено, що п'ятий тип піктограми зі стрілкою.

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

Читати далі: Як виконати автоматичне сортування таблиці в Excel (5 способів)

Висновок

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

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