Lajittele tiedot syntymäpäivän mukaan Microsoft Excelin VBA: n avulla

Anonim

Tässä artikkelissa luomme makron taulukon tietojen lajitteluun syntymäpäivän mukaan, emmekä ota huomioon vuotta lajitellessasi tietoja.

Raakatiedot koostuvat kahdesta sarakkeesta, joista toinen sisältää nimen ja toinen sarake sisältää syntymäajan.

Looginen selitys

Olemme luoneet makron, "sorting_names_by_birthday", joka lajittelee tiedot.

Tässä makrossa lisätään ensin kaavat sarakkeeseen C, josta löydetään ero syntymäajan ja syntymävuoden ensimmäisen päivämäärän välillä. Sitten lajittelemme tiedot nimen mukaan lajitellaksesi tiedot aakkosjärjestyksessä siten, että jos kahdella ehdokkaalla on sama syntymäaika, niiden nimet näkyvät aakkosjärjestyksessä. Sitten lajittelemme tiedot laskemalla erot nousevassa järjestyksessä tietojen lajittelua varten syntymäpäivän mukaan. Kun olet lajitellut tiedot, poista kaavat sarakkeesta C poistamalla koko sarake C.

Jos haluat suorittaa makron, paina Alt +F8 tai Siirry kehittäjä -välilehdelle> napsauta Makro.

Seuraa koodia alla

 Option Explicit Sub sorting_names_by_birthday () 'Näytön päivityksen poistaminen käytöstä Application.ScreenUpdating = False Dim Last_Row As Long' Viimeisen rivin löytäminen Last_Row = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row Range ("C16"). Valitse 'Vuoden päivien saaminen' Vähennetään vuoden ensimmäinen päivämäärä syntymäpäivästä ActiveCell.FormulaR1C1 = "= RC [-1] -DATE (VUOSI (RC [-1]), 1,1)" '' Kaavan alueen vetäminen ("C16: C" & Viimeinen_rivi) .Valitse Selection.FillDown 'Lajittele tiedot ensin sarakkeen A ja sitten sarakkeen C alue ("A15") mukaan. ("A15"), järjestys2: = xlAscending, _ Header: = xlKyllä 'Sarakkeen C sarakkeiden poistaminen ("C"). Poista alue ("A15"). Valitse End Sub 

Jos pidit tästä blogista, jaa se ystävillesi Facebookissa. Voit myös seurata meitä Twitterissä ja Facebookissa.

Haluaisimme kuulla sinusta, kerro meille, kuinka voimme parantaa työtämme ja parantaa sitä sinulle. Kirjoita meille sähköpostitse