Зміст
Знання того, як сортувати діапазон за допомогою VBA в Excel, економить час і зусилля в наших щоденних розрахунках. Хоча Excel надає можливість сортування за замовчуванням. Range.Sort метод ми отримуємо доступ до декількох параметрів для сортування набору даних з більшою кількістю опцій, ніж зазвичай.
Завантажити Практичний посібник
Завантажте цей практичний посібник, щоб потренуватися, поки ви читаєте цю статтю.
Сортування діапазону в Excel.xlsmВведення в оператор Range.Sort в Excel VBA
Мета Сортування діапазону даних комірок.
Синтаксис:
вираз Сортування ( Key1 , Замовлення1 , Key2 , Тип , Замовлення2 , Key3 , Замовлення3 , Заголовок , ЗамовленняЗамовлення , MatchCase , Орієнтація , SortMethod , DataOption1 , DataOption2 , DataOption3 )
Тут, в рамках програми "Відкритий світ", відбулася презентація вираз являє собою Діапазон об'єкт, тобто комірка, рядок, стовпець або вибірка комірок.
Аргументи:
Ми повинні забезпечити три основні параметри для Range.Sort метод. Вони...
Ключ - Діапазон комірок з одного або декількох стовпців, які потрібно відсортувати.
Замовлення - Вкажіть порядок сортування: за зростанням або за спаданням.
Заголовок - Оголосити, чи мають стовпці, що сортуються, заголовок чи ні.
6 Приклади сортування діапазону в Excel VBA
У цій статті в якості набору даних ми використаємо список імен людей з датою народження та віком. Ми застосуємо різні методи для сортування набору даних. Давайте пройдемо статтю та потренуємося освоювати ці методи на практиці.
1. Сортування діапазону з одним стовпцем за допомогою Excel VBA
У цьому прикладі ми сорт люди з найстаріший до наймолодший Давайте виконаємо наступні кроки, щоб скористатися Діапазон . Сортування метод що буде сорт в "Урядовому кур'єрі". Вікова колонка в за спаданням .
Сходинки:
- Перейдіть на сторінку Вкладка "Розробник в Стрічка Excel до клацнути на Visual Basic
- Потім виберіть Варіант модуля від Вставка вкладки щоб відкрити новий модуль .
Тепер, ми застосуємо наш код до сорт в "Урядовому кур'єрі". Вік діапазон стовпців.
1.1 Стовпчик із заголовком
У візуальному редакторі коду введіть наступний код.
Sub SortRange() Range("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlЗа спаданням, _ Header:=xlТак End Sub
Преса F5 або натисніть на кнопку Біжи кнопку, щоб виконати код.
Пояснення:
У вищенаведеному коді ми ставимо
Вираз (об'єкт Діапазон)=Діапазон("D4:D11"); в "Урядовому кур'єрі". вікова колонка з заголовок в комірка D4 і цінності в D5:D11.
Key = Range("D4"); в "Урядовому кур'єрі". ключ для сортування.
Order= xlDescending; як ми хочемо сорт значення від найбільший до найнижчий ми встановили порядок сортування як знижуються.
Заголовок =xlТак; На наступному скріншоті ми бачимо, що набір даних має заголовок для кожного з них колонки.
1.2 Колонка без заголовка
У візуальному редакторі коду введіть наступний код.
Sub SortRange() Range("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlЗа спаданням, _ Header:=xlНі End Sub
Преса F5 або натисніть на кнопку Біжи кнопку, щоб виконати код.
Пояснення:
У вищенаведеному коді ми ставимо
Вираз (об'єкт Діапазон)=Діапазон("D4:D10"); в "Урядовому кур'єрі". вікова колонка без заголовок має цінності в D4:D10.
Key = Range("D4"); в "Урядовому кур'єрі". ключ для сортування.
Order= xlDescending; як ми хочемо сорт значення від найбільший до найнижчий ми встановили порядок сортування як знижуються.
Заголовок =xlNo; На наступному скріншоті ми бачимо, що набір даних не має заголовок.
Пов'язаний контент: Як відсортувати стовпці в Excel без змішування даних (3 способи)
2. Використання коду VBA для сортування багатостовпцевого діапазону в Excel
Показати сортування за кілька колонок нам потрібно змінювати наш набір даних Трохи. Ми вставлений кілька новий ряди У модифікованому наборі даних рядки 7, 8, і 9 мають той самий значення для дата народження і віки але три різні назви Ці імена є не в будь-якому конкретне замовлення висхідного чи низхідного.
У цьому прикладі ми впорядкуємо імена в за зростанням Запустимо наступний код у редакторі Visual Basic:
Sub SortRange() Range("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub
Пояснення:
На наведеному вище скріншоті ми бачимо, що вік у колонка D це відсортований в за спаданням Порядок. Ми додали ще два параметра в нашому попередньому кодексі.
Key2: =Range("B4") ключ для сортування імен.
Order2: =xlAscending "Про те, що в Україні не існує жодного закону, який би порядок для скорочені назви .
Як наслідок, ми бачимо, що імена в рядки 7, 8 та 9 зараз за алфавітом відсортовано висхідний порядок.
На наступному скріншоті ми змінили значення про Параметр Order2 до сорт в "Урядовому кур'єрі". імена в за спаданням порядок.
Читати далі: Як сортувати кілька стовпців в Excel (5 швидких способів)
3. Двічі клацніть на заголовку, щоб відсортувати діапазон стовпців у Excel VBA
Стандартна функція сортування в Excel не дозволяє значення сортування стовпчика на подвійне натискання в "Урядовому кур'єрі". заголовок стовпчика Але за допомогою коду на VBA ми можемо це зробити. Проілюструємо цю функціональність на прикладі наступного коду.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer ColCount = Range("A:C8").Columns.Count Cancel = False If Target.Row = 1 And Target.Column <= ColCount Then Cancel = True Set KeyRange = Range(Target.Address) Range("A:C8").Sort Key1:=KeyRange, Header:=xlYes End If End Sub
У цьому коді ми використовували Подія BeforeDoubleClick до відключити звичайний дубль - клацнути який має розпочати роботу над створенням редагування При виконанні цієї події, якщо ми подвійний - клацнути на будь-якому з заголовки стовпців сортує дані стовпця в за зростанням .
Читати далі: VBA для сортування стовпця в Excel (4 способи)
Схожі читання:
- Як додати кнопку сортування в Excel (7 способів)
- Сортування унікального списку в Excel (10 корисних способів)
- Як використовувати функцію сортування в Excel VBA (8 відповідних прикладів)
- Сортування дублікатів в Excel (стовпці та рядки)
- Випадкове сортування в Excel (формули + VBA)
4. Сортування діапазону стовпців на основі кольору фону за допомогою Excel VBA
Ми можемо сортувати діапазон комірок у стовпці на основі на своїх колір фону Для цього нам необхідно додавати a параметр названий SortOn яка має значення xlSortOnCellColor Для демонстрації сортування спочатку задамо різні значення кольори фону до лав нашого набір даних .
Потім в редакторі візуального базового коду копія наступний код і натисніть F5 щоб керувати ним.
Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksbooks("background").Sort.SortFields.Add2 Key:=Range("B4"), _ SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksbooks("background").Sort .SetRange Range("B4:D10") .Apply End With End Sub
На наступному скріншоті ми можемо побачити відсортований набір даних за кольором фону.
Пояснення:
- У цьому прикладі ми назвали робочий аркуш " передісторія "Отже, в кодексі ми записали " передісторія "як наші ім'я активного аркуша.
- Ми встановили B4 в якості ключ і B4:D10 в якості діапазон Код буде сортувати дані на основі ключа.
- Оскільки ми не вказали, що саме параметр заголовку код виконується за замовчуванням без заголовка.
- Ми встановили порядок параметр як висхідний, тому вона відсортувала дані від менших до більших значень .
Читати далі: Як сортувати за кольором в Excel (4 критерії)
5. Застосування коду VBA для сортування діапазону стовпців на основі кольору шрифту
Застосовуючи код VBA, ми можемо відсортувати наш набір даних на основі їх колір шрифту По-перше, нам потрібно розфарбувати різні рядки Проілюструємо на прикладі.
Застосуйте наведений нижче код для сортування набору даних на основі колір шрифту.
Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0) With ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub
Пояснення:
- У цьому прикладі ми назвали робочий аркуш " колір шрифту "Отже, в кодексі ми записали " колір шрифту "як наші ім'я активного аркуша.
- Ми встановили B4 в якості ключ і B4:D11 в якості діапазон Код буде сортувати дані на основі ключа.
- У цьому прикладі ми також вказали параметр заголовку у вигляді xlТак .
- Тут ми встановили порядок параметр як висхідний, тому вона відсортувала дані від менших до більших значень .
- Значення цього показника SortOn параметр дорівнює
- На сьогоднішній день, на жаль, це не так. параметр орієнтації утримує значення xlTopToBottom оскільки це є обов'язковим.
- Колір для сортування в термінах RGB, який має значення від 0 до 255 .
Читати далі: Як відсортувати два стовпці в Excel на збіг (як повний, так і частковий)
6. Зміна орієнтації для сортування діапазону за допомогою Excel VBA
За допомогою орієнтація ми можемо змінити спосіб сортування даних. У цьому прикладі ми маємо перенесений наш набір даних до сорт це по горизонталі .
Помістимо наступний код в редактор Visual Basic і натиснемо F5 для його виконання.
Sub Orientation() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientation:=xlSortRows, _ Header:=xlYes End Sub
Тут ми відсортований дані на основі віковий ряд в висхідний замовлення від лівий до правильно У коді встановлюємо значення орієнтація параметр як xlSortRows .
Пов'язаний контент: Як автоматично сортувати кілька стовпців у Excel (3 способи)
Важливі моменти для запам'ятовування
- На сьогоднішній день, на жаль, це не так. Параметр SortOn що ми звикли сорт діапазон стовпців на основі колір фону і колір шрифту може бути використаний тільки об'єкт робочого аркуша Ми не можемо використовувати його з об'єкт полігону .
- На сьогоднішній день, на жаль, це не так. Подія BeforeDoubleClick сортує дані тільки в висхідний.
Висновок
Тепер ми знаємо, як сортувати діапазон за допомогою VBA в Excel. Сподіваємося, це допоможе вам використовувати його більш впевнено. Якщо у вас виникнуть питання або пропозиції, не забувайте залишати їх у полі для коментарів нижче.