Како сортирати радне листове у Екцелу помоћу ВБА (по абецеди)

Ако радите са пуно радних листова у Екцелу, знали бисте да управљање њима може постати проблем.

Када имате више од неколико радних листова, морате их ручно уредити.

Колико би лако било да је постојао начин за брзо сортирање радних листова у Екцелу.

Иако не постоји уграђен начин за то, то се може учинити (лако) помоћу ВБА.

У овом водичу ћу вам дати код и тачне кораке које морате следити да бисте сортирали радне листове у Екцелу.

Код можете подесити да бисте сортирали радне листове узлазним или силазним редоследом.

ВБА код за сортирање радних листова у Екцелу

Испод је код који ће сортирати радне листове по абецедном реду чим га покренете.

Суб СортВорксхеетсТабс () Апплицатион.СцреенУпдатинг = Фалсе Дим СхЦоунт Ас Интегер, и Ас Интегер, ј Ас Интегер СхЦоунт = Схеетс.Цоунт Фор и = 1 То СхЦоунт - 1 Фор ј = и + 1 То СхЦоунт Иф УЦасе (Схеетс (ј). Назив) <УЦасе (Схеетс (и) .Наме) Затим Схеетс (ј) .Премјести прије: = Схеетс (и) Енд Иф Нект ј Нект и Апплицатион.СцреенУпдатинг = Труе Енд Суб

Горе наведено је једноставан код који користи петље Фор Нект за анализу сваког радног листа у односу на све радне листове.

Упоређује назив радног листа са свим радним листовима и помера га на основу његовог имена по абецедном реду.

Затим прелази на следећи радни лист, а затим га проверава према свим радним листовима.

Овај процес се понавља за све радне листове, а коначни резултат је редослед радних листова сортиран по абецедном реду.

Неколико важних ствари које треба знати о овом коду:

  1. УЦасе функција се користи како би се осигурало да се мала и велика слова не третирају различито.
  2. Вредност Апплицатион.СцреенУпдатинг је постављена на Фалсе на почетку кода и промењена у Труе на крају кода. Ово осигурава да док је код покренут, нећете видети да се то дешава на екрану. Ово такође помаже убрзању извршавања кода.

Ако желите да сортирате радне листове опадајућим редоследом, потребно је само да промените знак (већи од).

Доњи код би сортирао радне листове по опадајућем редоследу:

'Овај код ће сортирати радне листове по абецедном реду Суб СортВорксхеетсТабс () Апплицатион.СцреенУпдатинг = Фалсе Дим СхЦоунт Ас Интегер, и Ас Интегер, ј Ас Интегер СхЦоунт = Схеетс.Цоунт Фор и = 1 То СхЦоунт - 1 Фор ј = и + 1 То СхЦоунт Ако је УЦасе (Схеетс (ј) .Наме)> УЦасе (Схеетс (и) .Наме) Затим Схеетс (ј) .Премјести прије: = Схеетс (и) Енд Иф Нект ј Нект и Апплицатион.СцреенУпдатинг = Труе Енд Суб

Такође можете дати кориснику могућност избора да ли жели да сортира према растућем/силазном редоследу.

Код испод приказује оквир за поруку и корисник може изабрати редослед за сортирање.

Суб СортВорксхеетсТабс () Апплицатион.СцреенУпдатинг = Фалсе Дим СхЦоунт Ас Интегер, и Ас Интегер, ј Ас Интегер Дим СортОрдер Као ВбМсгБокРесулт СортОрдер = МсгБок ("Изаберите Да за растући редослед и Не за опадајући редослед", вбИесЦооунт и = 1 За СхЦоунт - 1 За ј = и + 1 За СхЦоунт Ако је СортОрдер = вбДа Тада Иф УЦасе (Схеетс (ј) .Наме) УЦасе (Схеетс (и) .Наме) Затим Схеетс (ј). Премести пре: = Схеетс (и) Енд Иф Енд Иф Нект ј Нект и Апплицатион.СцреенУпдатинг = Труе Енд Суб

Горњи код када се изврши приказује поруку као што је приказано испод. Сортира на основу избора (Да за Узлазни и Не за Силазни).

У случају да кликнете на Откажи, код престаје и ништа се не дешава.

Белешка: Сортирање се не може поништити. У случају да желите да задржите и оригинални налог, направите копију радне свеске.

Реч опреза: Горњи код функционише у већини случајева. Једна област у којој ће вам дати погрешан резултат је када имате називе картица као што су К12021-2022, К22021-2022, К12021-2022, К22021-2022. У идеалном случају, желели бисте да све картице за исте године буду заједно, али то неће бити учињено јер ће се К12021-2022 поставити пре К22021-2022.

Где ставити ВБА код

Екцел има ВБА позадину која се зове ВБА едитор.

Морате да копирате и залепите ВБА код у прозор кода модула ВБ Едитор.

Ево корака за то:

  1. Кликните на картицу „Девелопер“. (Не видите картицу за програмере? Кликните овде да бисте сазнали како да је набавите).
  2. Кликните на опцију Висуал Басиц. Ово ће отворити ВБ едитор у позадини.
  3. У окну Пројецт Екплорер у ВБ Едитор-у кликните десним тастером миша на било који објекат радне свеске у који желите да уметнете код. (Ако не видите Пројецт Екплорер, идите на картицу „Виев“ и кликните на „Пројецт Екплорер“.)
  4. Идите на Уметни и кликните на Модул. Ово ће уметнути објект модула за вашу радну свеску.
  5. Копирајте и залепите код у прозор модула.

Како покренути ВБА код

У Екцелу постоје различити начини за покретање ВБА кода.

Код можете покренути директно из Висуал Басиц Едитор -а (који се назива и ВБ Едитор).

Можете уметнути дугме или облик у радни лист и доделити му макро. Када кликнете на дугме, макро ће се одмах покренути.

Макро можете додати и на траку са алаткама за брзи приступ (КАТ). Сада кад год морате да сортирате картице радног листа, можете само да кликнете на икону кода макроа у КАТ -у.

Све о покретању макроа можете прочитати овде - Како покренути макро у Екцелу (или погледати видео испод).
Можда ће вам се допасти и следећи Екцел/ВБА водичи:

  • Како сортирати податке у Екцелу помоћу ВБА.
  • Аутоматски сортирајте податке по абецедном реду користећи формулу.
  • Како извршити сортирање података на више нивоа у програму Екцел.
  • Увод у опције сортирања података програма Екцел.
  • Екцел ВБА аутофилтер: Потпуни водич са примерима
  • Како груписати радне листове у Екцелу
  • Како окренути податке у програму Екцел

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave