Excel VBA; Як відсортувати таблицю за допомогою VBA; Денис Рейс

Ця публікація є частиною серії VBA Basics.
Мене часто запитують, як сортувати значення в таблиці за допомогою VBA. У цьому дописі я покажу вам, як це зробити, на двох прикладах.
Вихідна таблиця показує продажі на місто.
| місто | продажів |
| Берлін | 362 |
| Гамбург | 832 |
| Мюнхен | 290 |
| Кельн | 901 |
| Франкфурт | 335 |
| Штутгарт | 987 |
| Дюссельдорф | 257 |
| Дортмунд | 470 |
| їсти | 867 |
| Лейпциг | 661 |
Ми хочемо сортувати таблицю за продажами та за назвою міста.

Для цього ми спочатку створюємо новий макрос.
Спочатку визначаємо параметри та визначаємо, яку область слід сортувати. Спочатку ми хочемо відсортувати за обсягами продажів у стовпці B.
Для цього ми використовуємо метод Сортування, який сортує діапазон значень. Цей метод має ряд параметрів, лише пару з яких ми будемо використовувати. Повний список усіх параметрів можна знайти в довідковому документі Microsoft VBA.
Ми хочемо відсортувати продажі у стовпці B за зростанням. Для цього нам потрібно вказати перше поле сортування в Key1; це визначає значення, які потрібно сортувати. За потреби можна також визначити кілька полів сортування. Поле сортування може бути передане як ім'я діапазону або як об'єкт діапазону. Ми обираємо властивість Range для гнучкості.
У другому параметрі Order1 ви визначаєте порядок сортування за допомогою xlAscending (зростаючий) або xlDescending (низхідний). Крім того, ми повідомляємо Excel за допомогою параметра Header, що наша таблиця містить заголовки. Якщо ви використовуєте тут значення xlGuess, Excel намагається визначити, чи має таблиця заголовки чи ні.
Тож повний макрос виглядає так:
Під час запуску макросу він сортується за продажами:
| місто | продажів |
| Дюссельдорф | 257 |
| Мюнхен | 290 |
| Франкфурт | 335 |
| Берлін | 362 |
| Дортмунд | 470 |
| Лейпциг | 661 |
| Гамбург | 832 |
| їсти | 867 |
| Кельн | 901 |
| Штутгарт | 987 |

111 макросів VBA, які полегшують ваше життя
Ви хочете позбутися своїх нудних рутинних завдань? Хотіли б Ви адаптувати Excel до своїх потреб, автоматизувати розрахунки, створити власні діалогові вікна та багато іншого? Ця книга показує, як швидко і легко виконувати свої завдання за допомогою VBA.
Тепер у вас є міста, перелічені за продажами.

А тепер давайте розміщувати міста за алфавітом. Я вводжу новий параметр. За допомогою MatchCase ви можете визначити, чи слід розглядати великі чи малі літери.
Для нового макросу ми просто змінюємо параметр strColumn і додаємо MatchCase.
Коли ви запускаєте макрос, таблиця сортується у порядку зростання за містом.
| місто | продажів |
| Берлін | 362 |
| Дортмунд | 470 |
| Дюссельдорф | 257 |
| їсти | 867 |
| Франкфурт | 335 |
| Гамбург | 832 |
| Кельн | 901 |
| Лейпциг | 661 |
| Мюнхен | 290 |
| Штутгарт | 987 |

Зразок файлу Excel із готовим до використання макросом та 111+ іншими макросами, що полегшують ваше життя, можна знайти тут.
Вражайте свого начальника крутими прийомами Excel!
- Не дозволяйте вашим колегам залежати від вас!
- Економте час і використовуйте його для більш приємних справ
- Збільште свою продуктивність та ефективність
- Це легко - у своєму бюлетені я даю покрокові вказівки, які всі можуть зрозуміти
- Зареєструвавшись на мою розсилку, ви отримаєте книгу "Прийоми Excel, які вражають вашого начальника" як вітальний подарунок.

Джерело зображення: Pixabay, CC0 Public Domain
Поділитися входом
Вас це також може зацікавити






дякую за ваше детальне пояснення. Я міг би це використовувати супер.
На жаль, у мене проблема, що в моїй таблиці, який стовпець включає від A до N і сортується відповідно до стовпця M, стовпець N не сортується, а просто залишається.
Звідси питання: Що означає "1" у цьому рядку коду:
Клавіша1: = Діапазон (strColumn & "1"), Order1: = xlЗростаючий, _
Дякую і всього найкращого
Фрідеріке
Питання Ріке дуже цікаве. Я теж хотів би це знати.
Дякую та вітаю
Це комбінація strColumn, яка в прикладі є "A", і 1 ..., отже, у результаті з’являється комірка A1 ... Значення & в діапазоні - це посилання