Како да го подредите опсегот користејќи VBA во Excel (6 примери)

  • Споделете Го Ова
Hugh West

Содржина

Да знаете како да го сортирате опсегот користејќи VBA во Excel, заштедува време и напор во нашите дневни пресметки. Иако Excel стандардно обезбедува можност за сортирање. Со користење на методот Range.Sort , добиваме пристап до неколку параметри за подредување база на податоци со повеќе опции од вообичаеното.

Преземете ја работната книга за вежбање

Преземете ја оваа работна книга за вежбање за да вежбате додека ја читате оваа статија.

Подреди на подредување во Excel.xlsm

Вовед во изјавата Range.Sort во Excel VBA

Цел : Да се ​​подреди опсегот на клеточни податоци.

Синтакса:

израз . Подреди ( Клуч1 , Реден 1 , Клуч2 , Тип , Нарачајте2 , Клуч3 , Нарачајте3 , Заглавје , Нарачајте приспособено , MatchCase , Orientation , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Овде, изразот претставува Опсег , т.е., ќелија, ред, колона или избор на ќелии.

Аргументи:

Треба да обезбедиме три главни параметри за методот Range.Sort . Тие се-

Клучни – Опсегот на ќелии од една или повеќе колони што треба да ги подредиме.

Ред – Наведете го редоследот на сортирање или растечки или опаѓачки.

Заглавие – Декларирајте дали колоните што треба да се подредат имаат заглавие или не.

6 Примери за подредување опсег во Excel VBA

Воовој напис, како збирка податоци, ќе користиме список со имиња на луѓе со нивниот датум на раѓање и возраст. Ќе примениме различни методи за сортирање на базата на податоци. Ајде да ја разгледаме статијата и да вежбаме да ги совладаме овие методи.

1. Сортирајте опсег на една колона со помош на Excel VBA

Во овој пример, ќе ги сортираме луѓето од најстари до најмлади . Ајде да ги следиме чекорите за користење на Опсег . Подреди метод кој ќе сортира колоната Возраст во опаѓачки редослед .

Чекори:

  • Одете во картичката за програмери во Excel лентата за да кликнете на Visual Basic

  • Потоа изберете ја опцијата Модул од јазичето Вметни за да се отвори нов модул .

Сега, ќе го ставиме нашиот код на сортирајте опсегот на колони Возраст .

1.1 Колона со заглавие

Ставете го следниов код во уредувачот на визуелни кодови.

4927

Притиснете F5 или кликнете на копчето Стартувај за изврши кодот.

Објаснување:

Во горната шифра, ставаме-

Израз (Објект на опсег)=Опсег (“D4:D11”); колоната возраст со заглавие во ќелијата D4 и вредностите во D5:D11.

Клуч = Опсег („D4“); клучот за сортирање.

Ред= xlОпаѓачки; како што сакаме да ги подредиме вредностите од најголемата на најниската го поставивме редоследот на сортирање како опаѓачки.

Header =xlYes; На следната слика од екранот, можеме да видиме дека базата има заглавие за секоја од колоните.

1.2 Колона без заглавие

Ставете го следново код во уредувачот на визуелни кодови.

7888

Притиснете F5 или кликнете на копчето Стартувај за изврши кодот.

Објаснување:

Во горниот код, ставивме-

Израз (Објект на опсег)=Опсег („D4 :D10”); колоната возраст без заглавие има вредности во D4:D10.

Клуч = Опсег („D4“); клучот за сортирање.

Ред= xlОпаѓачки; како што сакаме да ги сортираме вредностите од најголемата на најниската го поставивме редоследот на сортирање како опаѓачки.

Header =xlNo; На следната слика од екранот, можеме да видиме дека базата нема заглавие.

Поврзани содржини: Како да се подредат колоните во Excel без да се мешаат податоци (3 начини)

2. Користење на VBA код за подредување опсег на повеќе колони во Excel. 1>податоци малку. Ние вметнавме неколку нови редови . Во изменетата база на податоци, редовите 7, 8, и 9 ги имаат истите вредности за датумот на раѓање и возраст но три различни имиња . Овие имиња не се во ниту еден конкретен редослед на растечки или опаѓачки.

Во овој пример, ќе ги подредиме имињата во растечки редослед . Ајде да го извршиме следниов код во визуелниот основен уредувач:

3459

Објаснување:

Во горенаведеното скриншот, можеме да видиме дека возрастите во колоната D се подредени по опаѓачки редослед. Додадовме уште два параметри во нашиот претходен код.

Key2: =Range(“B4”) , клучот за сортирање имиња.

Ред2: =xlРастечки , редоследот за скратување имиња .

Како резултат, ги гледаме имињата во редовите 7, 8 и 9 сега се азбучно подредени по растечки редослед.

На следната слика од екранот, го променивме вредност на параметарот Ред2 за сортирање имињата по опаѓачки редослед.

Прочитајте повеќе: Како да подредите повеќе колони во Excel (5 брзи пристапи)

3. Двоен клик на заглавјето за подредување опсег на колони во Excel VBA

Стандардната функција за сортирање на Excel не дозволува сортирање вредности на колона по двоен клик на заглавието на колоната . Но, користејќи VBA код, можеме да го оствариме тоа. Ајде да ја илустрираме оваа функционалност со примена на следниов код.

5359

Во овој код, го користевме настанот BeforeDoubleClick за да го исклучиме вообичаениот двоен клик што треба да го започне режимот уредување на ќелијата. Со овој настанработи, ако удвои кликнеме на кое било од заглавјата на колоните тоа ги подредува податоците на колоната по растечки редослед .

Прочитајте повеќе: VBA за подредување колона во Excel (4 методи)

Слични читања:

  • Како да додадете копче за сортирање во Excel (7 методи)
  • Подреди единствена листа во Excel (10 корисни методи)
  • Како да се користи функцијата за сортирање во Excel VBA (8 соодветни примери)
  • Подреди дупликати во Excel (колони и редови)
  • Случајно сортирање во Excel ( Формули + VBA)

4. Подреди опсег на колони врз основа на бојата на заднината со помош на Excel VBA

Можеме да подредиме опсег на ќелии во колона врз основа на нивната боја на позадината . За да го сториме тоа, треба да додадеме а параметар именуван SortOn кој има вредност xlSortOnCellColor . За да го демонстрираме сортирањето, прво поставивме различни бои на позадината на редовите на нашата збирка на податоци .

Потоа во визуелната основна уредувач на код копирајте го следниот код и притиснете F5 за да го извршите.

8148

На следната слика од екранот, можеме да ја видиме сортираната база на податоци заснована на нивната боја на позадина.

Објаснување:

  • Во овој пример, го именувавме работниот лист позадина “. Така, во кодот го ставаме „ позадина “ како наше име на активното работно место.
  • Поставивме B4 како клуч и B4:D10 како опсег . Кодот ќе ги сортира податоците врз основа на клучот.
  • Бидејќи не го наведовме параметарот на заглавието , кодот работи за стандардното без заглавие.
  • Го поставивме параметарот ред како растечки, така ги подреди податоците од пониски на повисоки вредности .

Прочитајте повеќе: Како да подредите по боја во Excel (4 критериуми)

5. Примени VBA код за подредување опсег на колони врз основа на боја на фонтот

Со примена на VBA код, можеме да го сортираме нашиот сет врз основа на нивната боја на фонтот . Прво, треба да обоиме различни редови за да го илустрираме примерот.

Применете ја шифрата подолу за да ја подредите базата на податоци врз основа на боја на фонтот.

3977

Објаснување:

  • Во овој на пример, го именувавме работниот лист боја на фонтот “. Така, во кодот го ставаме „ fontcolor “ како наше име на активното работно место.
  • Поставивме B4 како клуч и B4:D11 како опсег . Кодот ќе ги сортира податоците врз основа на клучот.
  • Во овој пример, го наведовме и параметарот за заглавие како xlYes .
  • Овде, го поставивме редот параметар како растечки, така што ги подреди податоците од пониски кон повисоки вредности .
  • Вредноста на SortOn параметарот е
  • Параметарот ориентација ја држи вредноста xlTopToBottom како што е задолжително.
  • Бојата за подредување е во RGB термини кои има вредностод 0 до 255 .

Прочитајте повеќе: Како да подредите две колони во Excel за да се совпаднат (и двете точно и делумно совпаѓање)

6. Променете ја ориентацијата до опсегот на подредување користејќи Excel VBA

Користејќи го параметарот ориентација , можеме да го промениме начинот на кој сакаме да ги сортираме податоците. Во овој пример, ја транспониравме нашата база на податоци за сортирање тоа хоризонтално .

Да ставиме следете го кодот во визуелниот основен уредник и притиснете F5 за да го извршите.

2352

Тука сортиравме податоците врз основа на стариот ред во растечки редослед од лево на десно . Во кодот, го поставивме параметарот ориентација како xlSortRows .

Поврзана содржина: Како автоматско сортирање повеќе колони во Excel (3 начини)

Работи што треба да се запаметат

  • Параметарот SortOn што го користевме за сортирање опсегот на колони заснован на боја на заднина и боја на фонтот може да се користи само од објект на работниот лист . Не можеме да го користиме со објект на опсег .
  • Настанот BeforeDoubleClick ги подредува податоците само во растечки.

Заклучок

Сега, знаеме како да го сортираме опсегот користејќи VBA во Excel. Се надеваме дека ќе ве поттикне да го користите ова посигурно. Сите прашања или предлози не заборавајте да ги ставите во полето за коментари подолу.

Хју Вест е високо искусен тренер и аналитичар на Excel со повеќе од 10 години искуство во индустријата. Има диплома за сметководство и финансии и магистер по бизнис администрација. Хју има страст за предавање и има развиено уникатен пристап на наставата кој е лесен за следење и разбирање. Неговото стручно познавање на Excel им помогна на илјадници студенти и професионалци ширум светот да ги подобрат своите вештини и да се истакнат во нивните кариери. Преку својот блог, Хју го споделува своето знаење со светот, нудејќи бесплатни упатства за Excel и онлајн обука за да им помогне на поединците и бизнисите да го достигнат својот целосен потенцијал.