Ordinare i dati per il compleanno utilizzando VBA in Microsoft Excel
In questo articolo, creeremo una macro per ordinare i dati nel foglio per compleanno e non considereremo l’anno durante l’ordinamento dei dati.
I dati grezzi sono costituiti da due colonne, una contiene il nome e la seconda contiene la data di nascita.
Spiegazione logica
Abbiamo creato una macro, “sorting_names_by_birthday” che ordinerà i dati.
In questa macro inseriamo innanzitutto delle formule nella colonna C dove troviamo la differenza tra la data di nascita e la prima data del loro anno di nascita. Quindi ordiniamo i dati per Nome per ordinare i dati in ordine alfabetico in modo che se due candidati hanno la stessa data di nascita, i loro nomi dovrebbero apparire in ordine alfabetico. Quindi ordiniamo i dati calcolando la differenza in ordine crescente per ordinare i dati per data di nascita.
Dopo aver ordinato i dati, per cancellare le formule dalla colonna C, cancellare l’intera colonna C.
Per eseguire la macro, premere Alt + F8 o Vai alla scheda Sviluppatore> fare clic su Macro.
Segui sotto per il codice
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 'Subtracting first date of the year from date of birthday ActiveCell.FormulaR1C1 = "=RC[-1]-DATE(YEAR(RC[-1]),1,1)" 'Dragging the formula Range("C16:C" & Last_Row).Select Selection.FillDown 'Sorting the data first by column A then by column C Range("A15").CurrentRegion.Sort _ key1:=Range("C15"), order1:=xlAscending, _ key2:=Range("A15"), order2:=xlAscending, _ Header:=xlYes 'Deleting the column C Columns("C").Delete Range("A15").Select End Sub
Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.
Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]