Sortați datele după ziua de naștere utilizând VBA în Microsoft Excel

Anonim

În acest articol, vom crea o macro pentru sortarea datelor din foaie după ziua de naștere și nu vom lua în considerare anul în timp ce sortăm datele.

Datele brute sunt formate din două coloane, una conține numele și a doua coloană conține data nașterii.

Explicație logică

Am creat o macro, „sorting_names_by_birthday” care va sorta datele.

În această macro, mai întâi inserăm formule în coloana C unde găsim diferența dintre data nașterii și prima dată a anului lor de naștere. Apoi sortăm datele după nume pentru sortarea datelor în ordine alfabetică, astfel încât dacă doi candidați au aceeași dată de naștere, atunci numele lor ar trebui să apară în ordine alfabetică. Apoi sortăm datele calculând diferența în ordine crescătoare pentru a sorta datele după ziua de naștere. După sortarea datelor, pentru ștergerea formulelor din coloana C, ștergeți întreaga coloană C.

Pentru a rula macro-ul, apăsați Alt + F8 sau Accesați fila Dezvoltator> faceți clic pe Macro.

Vă rugăm să urmați codul de mai jos

 Opțiune Explicit Sub sorting_names_by_birthday () 'Dezactivarea actualizării ecranului Application.ScreenUpdating = False Dim Last_Row As Long' Găsirea ultimului rând Last_Row = ActiveCell.SpecialCells (xlCellTypeLastCell). Row Range ("C16"). Scăderea primei date a anului din data nașterii ActiveCell.FormulaR1C1 = "= RC [-1] -DATE (YEAR (RC [-1]), 1,1)" 'Tragerea formulei Range ("C16: C" & Last_Row). Selectați Selection.FillDown 'Sortarea datelor mai întâi după coloana A apoi după coloana C Range ("A15"). CurrentRegion.Sort _ key1: = Range ("C15"), order1: = xlAscending, _ key2: = Range ("A15"), order2: = xlAscending, _ Header: = xlYes 'Ștergerea coloanei C Coloane ("C"). Ștergeți intervalul ("A15"). Selectați End Sub 

Dacă ți-a plăcut acest blog, distribuie-l prietenilor tăi de pe Facebook. De asemenea, ne puteți urmări pe Twitter și Facebook.

Ne-ar plăcea să aflăm de la dvs., să ne anunțați cum putem îmbunătăți munca noastră și o putem îmbunătăți. Scrieți-ne pe site-ul de e-mail