Сортирајте податке према рођендану помоћу ВБА у Мицрософт Екцелу

Anonim

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

Сирови подаци се састоје од две колоне, једна садржи име, а друга колона садржи датум рођења.

Логичко објашњење

Направили смо макро „сортинг_намес_би_биртхдаи“ који ће сортирати податке.

У овај макро прво убацујемо формуле у колону Ц где налазимо разлику између датума рођења и првог датума њихове године рођења. Затим сортирамо податке по имену за сортирање података по абецедном редоследу тако да ако два кандидата имају исти датум рођења, њихова имена треба да се појаве по абецедном реду. Затим сортирамо податке израчунавајући разлику у растућем редоследу да сортирамо податке према рођендану. Након сортирања података, за брисање формула из колоне Ц, избришите целу колону Ц.

Да бисте покренули макро, притисните Алт +Ф8 или Идите на картицу Девелопер> кликните на Мацро.

Молимо следите доле за код

 Опција Експлицитно Под сортинг_намес_би_биртхдаи () 'Онемогућавање ажурирања екрана Апплицатион.СцреенУпдатинг = Фалсе Дим Ласт_Ров Ас Лонг' Проналажење последњег реда Ласт_Ров = АцтивеЦелл.СпециалЦеллс (клЦеллТипеЛастЦелл). Распон редова ("Ц16"). Изаберите 'Добијање године у Одузимање првог датума у ​​години од датума рођења АцтивеЦелл.ФормулаР1Ц1 = "= РЦ [-1] -ДАТЕ (ИЕАР (РЦ [-1]), 1,1)" '' Повлачење распона формуле ("Ц16: Ц" & Ласт_Ров) .Одаберите Селецтион.ФиллДовн 'Сортирање података прво по колони А, а затим по колони Ц Распон ("А15"). ЦуррентРегион.Сорт _ кеи1: = Ранге ("Ц15"), ордер1: = клАсцендинг, _ кеи2: = Ранге ("А15"), редослед2: = клАсцендинг, _ Заглавље: = клДа 'Брисање колоне Ц Колоне ("Ц"). Брисање опсега ("А15"). Изаберите Енд Суб 

Ако вам се допао овај блог, поделите га са пријатељима на Фацебооку. Такође, можете нас пратити на Твиттер -у и Фацебоок -у.

Волели бисмо да чујемо од вас, јавите нам како можемо побољшати наш рад и учинити га бољим за вас. Пишите нам на веб локацији е -поште