VBA для сортировки таблицы в Excel (4 метода)

  • Поделись Этим
Hugh West

Внедрение макрос VBA это самый эффективный, быстрый и безопасный метод выполнения любой операции в Excel. В этой статье мы покажем вам, как отсортировать таблицу в Excel с VBA .

Скачать рабочую тетрадь

Вы можете скачать бесплатную практическую рабочую тетрадь Excel отсюда.

Сортировка таблицы с помощью VBA.xlsm

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

Существуют некоторые параметры, которые часто приходится использовать при работе с программой Сортировать метод VBA Поэтому здесь мы обсудим некоторые параметры, чтобы вы могли ознакомиться с ними во время написания кода.

Параметр Обязательный/ Факультативный Тип данных Описание
Ключ Дополнительно Вариант Указывает диапазон или столбец, значения которого должны быть отсортированы.
Заказ Дополнительно XlSortOrder Указывает порядок, в котором будет выполняться сортировка.
  • xlПоднимаясь = Сортировать в порядке возрастания.
  • xlDescending = Сортировать в порядке убывания.
Заголовок Дополнительно XlYesNoGuess Указывает, содержит ли первая строка заголовки или нет.
  • xlNo = Когда колонка не имеет заголовков; Значение по умолчанию.
  • xlYes = Когда столбцы имеют заголовки.
  • 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:=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 Я надеюсь, что эта статья была очень полезна для вас. Не стесняйтесь спрашивать, если у вас есть какие-либо вопросы по этой теме.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.