Зміст
Впровадження Макрос VBA це найефективніший, найшвидший і найбезпечніший спосіб виконати будь-яку операцію в Excel. У цій статті ми покажемо вам, як сортування таблиці в Excel з VBA .
Завантажити Робочий зошит
Ви можете завантажити безкоштовну практичну книгу Excel тут.
Сортування таблиці за допомогою VBA.xlsm
Що потрібно знати перед впровадженням VBA для сортування таблиць в Excel
Існує ряд параметрів, які доводиться часто використовувати при роботі з Сортування метод VBA Тому тут ми обговоримо деякі параметри, щоб ви могли ознайомитися з ними під час написання коду.
Параметр | Обов'язково/необов'язково | Тип даних | Опис |
---|---|---|---|
Ключ | За бажанням | Варіант | Вказує діапазон або стовпець, значення якого потрібно відсортувати. |
Замовлення | За бажанням | XlSortOrder | Вказує порядок, в якому буде виконуватися сортування.
|
Заголовок | За бажанням | XlYesNoGuess | Вказує, чи містить перший рядок заголовки чи ні.
|
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 Сподіваюся, ця стаття була для вас дуже корисною. Не соромтеся запитувати, якщо у вас виникнуть запитання щодо цієї теми.