Оглавление
Внедрение макрос 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:=xlSortOnValues, Order:=xlDescending .Header = xlYes .Apply End With End Sub
Теперь ваш код готов к выполнению.
Вот,
- SortTBL → Укажите имя таблицы.
- SortTBL[Marks] -> Указано имя столбца таблицы для сортировки.
- Key1:=iColumn → Укажите диапазон столбцов, чтобы код знал, какой столбец в таблице нужно сортировать.
- Order1:=xlDescending → Уточнил заказ как xlDescending для сортировки столбца по убыванию. Если вы хотите отсортировать столбец по возрастанию, то напишите xlПоднимаясь вместо этого.
- Заголовок:= xlYes → Поскольку столбец в этой таблице имеет заголовок, мы указали его с помощью параметра xlYes вариант.
- Нажмите F5 на клавиатуре или в строке меню выберите Run -> Run Sub/UserForm Вы также можете просто нажать на маленький значок Play в строке подменю, чтобы запустить макрос.
Вы увидите, что столбец в вашей таблице теперь имеет вид отсортированные в порядке убывания .
Подробнее: Как отсортировать данные по значению в 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("TableValue") Set iColumn1 = Range("TableValue[Name]") Set iColumn2 = Range("TableValue[Department]") With iTable.Sort .SortFields.Clear .SortFields.Add Key:=iColumn1, Order:=xlAscending .SortFields.Add Key:=iColumn2, Order:=xlAscending.Header = xlYes .Apply End With End Sub
Теперь ваш код готов к выполнению.
Вот,
- TableValue → Укажите имя таблицы.
- TableValue[Name] -> Указано имя первого столбца таблицы для сортировки.
- TableValue[Department] -> Указано имя второго столбца таблицы для сортировки.
- Key1:=iColumn1 → Укажите диапазон столбцов, чтобы код знал, что первый столбец в таблице нужно отсортировать.
- Ключ1:=iColumn2 → Укажите диапазон столбцов, чтобы код знал, что второй столбец в таблице нужно отсортировать.
- Order1:=xlAscending → Уточнил заказ как xlПоднимаясь для сортировки столбца в порядке убывания. Если вы хотите отсортировать столбец в порядке убывания, то напишите xlDescending вместо этого.
- Заголовок:= xlYes → Поскольку столбцы этой таблицы имеют заголовки, мы указали их с помощью параметра xlYes вариант.
- Запускайте этот код, и вы получите оба сортировка столбцов таблицы в порядке возрастания.
Читать далее: Как автоматически сортировать несколько столбцов в 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(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(248, 203, 173) .SortFields.Add(Key:=iColumn,Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(255, 217, 102) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(198, 224, 180) .SortFields.Add(Key:=iColumn, Order:=xlAscending, SortOn:=xlSortOnCellColor).SortOnValue.Color = RGB(180, 198, 231) .Header = xlYes .Apply End With End Sub
Теперь ваш код готов к выполнению.
Здесь 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 Я надеюсь, что эта статья была очень полезна для вас. Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы по этой теме.