Макросите на Excel може да не са толкова изчерпателни, колкото другите инструменти за автоматизация, но валидността и ефективността на Excel VBA не могат да бъдат подкопани. Ако работите в Excel и други инструменти на Microsoft Office като Word и Access, няма как да сбъркате с VBA и неговите възможности.
MS Excel е мощен инструмент, който предлага множество опции на своите потребители. От съхраняване на данни до създаване на автоматизирани табла за управление, можете да правите всичко в Excel и неговите електронни таблици.
Ако искате да използвате VBA за автоматизиране на вашите отговорности за сортиране в Excel, опитайте тези ефективни лесни за прилагане макроси.
Изтеглете фиктивен набор от данни
Като за начало можете да изтеглите фиктивен набор от данни, за да работите върху вашите макро умения в Excel.
Бъдете сигурни, след като овладеете тези макроси и разберете по-добре как работят нещата, можете да преместите кода, за да пасне на вашите собствени електронни таблици за работа или училище.
Можете да изтеглите набора от данни, използван в тази статия, ако искате да следвате.
Изтегли: Набор от данни на Excel
1. Сортиране на една колона с помощта на макроси на Excel
Използвайте този прост код, за да сортирате колона с данни в електронна таблица на Excel. Ако сте изтеглили фиктивния набор от данни, можете да опитате да сортирате колона E (Продадени единици).
Отворете нов файл на Excel и го запазете с Работна книга с активиран макрос на Excel (.xlsm) вид работна книга. Този файл ще съхранява макроса за сортиране на вашите данни от друг файл.
Свързани: Най-добрите онлайн курсове за овладяване на Advanced Excel
Вие ще контролирате вашите файлове от макро файла, който ще взаимодейства с вашите работни книги отделно.
Въведете следния код:
Подсортиране с заглавия ()
Работни книги("Финансова проба.xlsx").Листове (1).Активирайте
Range("A1:P701").sort Key1:=Range("e1"), Order1:=xlAscending, Header:=xlYes
Край под
Където:
- Ключ 1: Определете колоните, които искате да сортирате
- Поръчка 1: Метод на подреждане (възходящ/низходящ)
- Заглавка: Ако съдържанието ви има заглавки, тази опция ще остане като xlДа. Като алтернатива изберете xlNo.
Диапазонът ще се състои от началната клетка и адреса на крайната клетка, така че всичко да бъде уловено за целите на сортирането. Резултатът е, че целият ви набор от данни ще бъде сортиран въз основа на данните в колона E.
2. Сортиране на динамични данни в една колона
Може да има случаи, в които началната ви точка е дефинирана, но крайната ви точка е динамична. В такъв случай можете да направите своя код динамичен, така че да улавя края на диапазона автоматично.
За да коригирате промяната в данните, използвайте кода по-долу:
Подсортиране с заглавия ()
Работни книги("Финансова проба.xlsx").Листове (1).Активирайте
Range("A1", Range("A1").End (xlDown)).sort Key1:=Range("e2"), Order1:=xlAscending, Header:=xlYes
Край под
Където:
- Край (xlDown): Тази функция автоматично ще избере последната попълнена клетка
Забележка: Ако формулата срещне празна клетка в колона, тя ще счита предходната клетка за край на диапазона.
Свързани: Как да създадете персонализирани клавишни комбинации в Microsoft Excel
3. Сортиране на няколко колони заедно
Може да има ситуации, когато искате да сортирате данни в няколко колони наведнъж. За да направите това, можете да използвате следния код, за да постигнете целта си:
ПодсортиранеМногоколони()
С работни листове ("Лист1")
С .Cells (1, "A").CurrentRegion
.Cells.sort Key1:=.Range("B1"), Order1:=xlAscending, _
Key2:=.Range("E1"), Order2:=xlAscending, _
Ориентация:=xlTopToBottom, Заглавка:=xlYes
Край с
Край с
Край под
4. Сортиране на колони в множество листа
Когато имате работа с множество листа, може да искате да подготвите данните си за поставяне в табло за управление. Един от най-важните аспекти на подготовката на данните е сортирането им и подреждането на данните в определен формат за представяне на вашите заинтересовани страни или клиенти.
Една от опциите е да преминете през всеки лист ръчно, да сортирате необходимите колони и след това да преминете към следващата стъпка. Като алтернатива, защо не позволите на VBA да го направи вместо вас?
Целта на кода по-долу е да премине през всеки наличен лист в работната книга и да сортира наличните данни въз основа на посочените колони.
Свързани: Функции за търсене в Microsoft Excel за по-ефективно търсене в електронни таблици
Ето как можете да сортирате колони в няколко листа:
Подсортиране WS()
Dim ws като работен лист
„Активирайте предвидения работен лист
Работни книги("Financial Sample.xlsx").Активирайте
„Превъртете автоматично през всеки отделен работен лист, като използвате цикъла for
За всеки ws в ActiveWorkbook. Листове
„активирайте всеки отделен работен лист
ws. Активирате
„Определете диапазона и след това сортирайте колоната на базата на вашите изисквания. В този случай само една колона се сортира.
Range("A1", Range("p1").End (xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
„Команда, използвана за преминаване към следващия работен лист, след като предишният работен лист е сортиран
Следващата ws
Край под
Цялата информация, започваща с единични кавички, са VBA коментари. Те не се изпълняват по време на етапа на изпълнение. Въпреки това, всеки VBA коментар, който добавяте, е смислено допълнение към кода, тъй като можете да дефинирате същността, функционалността и други подходящи части в кодовите секции.
5. Копиране на сортирани данни от един лист в друг
Представете си ситуация, в която искате да сортирате данните и да копирате целия набор от данни (или части от него) в новодобавен лист. В такива случаи можете да използвате кода по-долу, за да изпълните задачата:
Подсортиране WS()
Dim ws като работен лист
„Активирайте предвидения работен лист
Работни книги("Financial Sample.xlsx").Активирайте
„Превъртете автоматично през всеки отделен работен лист, като използвате цикъла for
За всеки ws в ActiveWorkbook. Листове
„активирайте всеки отделен работен лист
ws. Активирате
„Определете диапазона и след това сортирайте колоната на базата на вашите изисквания.
„В този случай само една колона се сортира.
Range("A1", Range("p1").End (xlDown)).sort Key1:=Range("E1"), Order1:=xlDescending, Header:=xlYes
„Команда, използвана за преминаване към следващия работен лист, след като предишният работен лист е сортиран
Следващата ws
„Създайте нов работен лист в работната книга, за да съхранявате новите данни
ActiveWorkbook. Листове. Добавете. Име = "Резултати"
„Копирайте и поставете сортираните данни в новодобавения лист
Sheets("Sheet1").Обхват("A1:p701").Копиране Дестинация:=Листове("Резултати").Обхват("a1")
Край под
Горният код ще сортира стойностите в колона E, ще добави нов лист Резултати в съществуващата работна книга и поставете сортираните резултати в клетка A1.
Създаване на макроси за сортиране в Excel
Excel VBA е изискан език, който може да ви спести много време и усилия. С помощта на VBA макроси можете да създавате обширни табла за управление, лесно да сортирате данни с няколко щраквания и да изпълнявате различни функции с лекота.
За щастие, функционалността на Excel не свършва с макроси. Вижте някои съвети и трикове, за да станете по-ефективен потребител на Excel.
Независимо дали сте майстор в Excel или просто започвате, ето деветте най-добри уебсайта и блогове, които можете да използвате, за да научите някои съвети и трикове.
Прочетете Следващото
- Програмиране
- Microsoft Excel
- Макроси

Gaurav Siyal има две години опит в писането, като пише за серия от фирми за дигитален маркетинг и документи за жизнения цикъл на софтуера.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, ревюта, безплатни електронни книги и ексклузивни оферти!
Щракнете тук, за да се абонирате