VBA за сортиране на таблица в Excel (4 метода)

  • Споделя Това
Hugh West

Внедряване на Макрос VBA е най-ефективният, най-бързият и най-сигурният метод за изпълнение на всякакви операции в Excel. В тази статия ще ви покажем как да сортиране на таблицата в Excel с VBA .

Изтегляне на работна тетрадка

Можете да изтеглите безплатната учебна тетрадка на Excel от тук.

Сортиране на таблица с VBA.xlsm

Какво трябва да знаете, преди да приложите VBA за сортиране на таблица в Excel

Има някои параметри, които трябва да използвате често, докато работите с Сортиране метод на VBA . Затова тук ще обсъдим някои от параметрите, за да се запознаете с тях, докато пишете кода.

Параметър Задължително/незадължително Тип данни Описание
Ключ По избор Вариант Посочва диапазона или колоната, чиито стойности трябва да се сортират.
Поръчка По избор XlSortOrder Определя реда, в който ще се извърши сортирането.
  • xlПовишаване на = За сортиране във възходящ ред.
  • xlНамаляващ = За сортиране в низходящ ред.
Заглавие По избор XlYesNoGuess Указва дали първият ред съдържа заглавия или не.
  • xlNo = Когато колоната няма никакви заглавия; Стойност по подразбиране.
  • xlYes = Когато колоните имат заглавия.
  • xlПознай = За да позволите на 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 → Посочено е името на таблицата.
  • Сортиране на TBL[марки] -> Посочено е името на колоната на таблицата за сортиране.
  • Key1:=iColumn → Задайте обхвата на колоната, за да може кодът да знае коя колона в таблицата да сортира.
  • Order1:=xlDescending → Определена поръчка като xlНамаляващ за сортиране на колоната в низходящ ред. Ако искате да сортирате колоната във възходящ ред, напишете xlПовишаване на вместо това.
  • Header:= 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 → Задайте обхвата на колоната, за да може кодът да разбере, че първата колона в таблицата трябва да бъде сортирана.
  • Key1:=iColumn2 → Задайте обхвата на колоната, за да може кодът да разбере, че втората колона в таблицата трябва да бъде сортирана.
  • Order1:=xlAscending → Определена поръчка като xlПовишаване на за сортиране на колоната в низходящ ред. Ако искате да сортирате колоната в низходящ ред, напишете xlНамаляващ вместо това.
  • Header:= 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 

Вашият код вече е готов за изпълнение.

Тук,

  • xl5Arrows -> Избрахме комплект от 5 стрели от опцията в Условно форматиране .
  • Позиция (1) -> Посочва се първи тип на иконата със стрелка.
  • Позиция (2) -> Посочва се втори тип икона със стрелка.
  • Позиция (3) -> Посочва се трети тип икона със стрелка.
  • Позиция (4) -> Посочва се четвърти тип икона със стрелка.
  • Позиция (5) -> Посочва се пети тип на иконата със стрелка.

  • Изпълнявайте този код и таблицата ще бъде сортирани въз основа на иконите .

Прочетете още: Как да сортирате автоматично таблицата в Excel (5 метода)

Заключение

Тази статия ви показва как да сортиране на таблицата в Excel VBA . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.