Съдържание
Внедряване на Макрос 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 → Посочено е името на таблицата.
- Сортиране на 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 . надявам се, че тази статия е била много полезна за вас. Не се колебайте да питате, ако имате някакви въпроси по темата.