V tomto článku vytvoríme makro na triedenie údajov v hárku podľa narodenín a pri triedení údajov nebudeme brať do úvahy rok.
Pôvodné údaje sa skladajú z dvoch stĺpcov, z ktorých jeden obsahuje meno a druhý stĺpec obsahuje dátum narodenia.
Logické vysvetlenie
Vytvorili sme makro „sorting_names_by_birthday“, ktoré bude údaje triediť.
V tomto makre najskôr vložíme vzorce do stĺpca C, kde nájdeme rozdiel medzi dátumom narodenia a prvým dátumom ich roku narodenia. Potom údaje zoradíme podľa Mena pre zoradenie údajov v abecednom poradí, takže ak majú dvaja kandidáti rovnaký dátum narodenia, ich mená by sa mali zobraziť v abecednom poradí. Potom zoradíme údaje vypočítaním rozdielu vo vzostupnom poradí a zoradíme ich podľa dátumu narodenia. Po zoradení údajov na odstránenie vzorcov zo stĺpca C vymažte celý stĺpec C.
Na spustenie makra stlačte Alt +F8 alebo Prejdite na kartu Vývojár> kliknite na Makro.
Pri kódovaní postupujte podľa nižšie uvedených pokynov
Option Explicit Sub sorting_names_by_birthday () 'Disabling screen update Application.ScreenUpdating = False Dim Last_Row As Long' Finding the last row Last_Row = ActiveCell.SpecialCells (xlCellTypeLastCell) .Row Range ("C16"). Select 'Getting the days of the year' Odpočítanie prvého dátumu v roku od dátumu narodenín ActiveCell.FormulaR1C1 = "= RC [-1] -DATE (YEAR (RC [-1]), 1,1)" '' Pretiahnutie vzorca Rozsah ("C16: C" & Last_Row). Vyberte Selection.FillDown 'Zoradenie údajov najskôr podľa stĺpca A a potom podľa stĺpca C Rozsah („A15“). CurrentRegion.Sort _ key1: = Range („C15“), order1: = xlAscending, _ key2: = Range ("A15"), poradie2: = xlScending, _ Hlavička: = xlÁno 'Odstránenie stĺpcov C stĺpcov ("C"). Odstrániť rozsah ("A15"). Vyberte End Sub
Ak sa vám tento blog páčil, zdieľajte ho so svojimi priateľmi na Facebooku. Môžete nás tiež sledovať na Twitteri a Facebooku.
Budeme radi, ak sa nám ozvete, dajte nám vedieť, ako môžeme zlepšiť našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku