Sortieren Sie die Daten von Geburtstag mit VBA in Microsoft Excel
In diesem Artikel erstellen wir ein Makro zum Sortieren der Daten im Blatt nach Geburtstag und berücksichtigen beim Sortieren der Daten nicht das Jahr.
Rohdaten bestehen aus zwei Spalten, eine enthält den Namen und die zweite Spalte enthält das Geburtsdatum.
Logische Erklärung
Wir haben ein Makro erstellt, „sorting_names_by_birthday“, das die Daten sortiert.
In diesem Makro fügen wir zuerst Formeln in die Spalte C ein, in denen wir den Unterschied zwischen dem Geburtsdatum und dem ersten Datum ihres Geburtsjahres finden. Anschließend sortieren wir die Daten nach Name, um die Daten in alphabetischer Reihenfolge zu sortieren. Wenn also zwei Kandidaten dasselbe Geburtsdatum haben, sollten ihre Namen in alphabetischer Reihenfolge angezeigt werden. Dann sortieren wir die Daten, indem wir die Differenz in aufsteigender Reihenfolge berechnen, um die Daten nach Geburtstag zu sortieren.
Löschen Sie nach dem Sortieren der Daten zum Löschen der Formeln aus der Spalte C die gesamte Spalte C.
Drücken Sie zum Ausführen des Makros Alt + F8 oder gehen Sie zur Registerkarte Entwickler und klicken Sie auf Makro.
Bitte folgen Sie unten für den Code
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
Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.
Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]