Sorteer de gegevens op verjaardag met VBA in Microsoft Excel

Inhoudsopgave

In dit artikel zullen we een macro maken voor het sorteren van gegevens in het blad op verjaardag en we zullen geen rekening houden met het jaar bij het sorteren van de gegevens.

Ruwe data bestaat uit twee kolommen, één bevat de naam en de tweede kolom bevat de geboortedatum.

Logische uitleg

We hebben een macro gemaakt, "sorting_names_by_birthday", die de gegevens zal sorteren.

In deze macro voegen we eerst formules in kolom C in waar we het verschil vinden tussen de geboortedatum en de eerste datum van hun geboortejaar. Vervolgens sorteren we de gegevens op naam om de gegevens in alfabetische volgorde te sorteren, zodat als twee kandidaten dezelfde geboortedatum hebben, hun namen in alfabetische volgorde moeten verschijnen. Vervolgens sorteren we de gegevens door het verschil in oplopende volgorde te berekenen om de gegevens op verjaardag te sorteren. Na het sorteren van de gegevens, voor het verwijderen van de formules uit kolom C, verwijdert u de hele kolom C.

Om de macro uit te voeren, drukt u op Alt +F8 of Ga naar het tabblad Ontwikkelaar > klik op Macro.

Volg hieronder voor de code:

 Optie Explicit Sub sorting_names_by_birthday() 'Schermupdate uitschakelen Application.ScreenUpdating = False Dim Last_Row As Long' Laatste rij zoeken Last_Row = ActiveCell.SpecialCells(xlCellTypeLastCell).Rijbereik ("C16").Selecteer 'De dagen van het jaar ophalen' De eerste datum van het jaar aftrekken van de verjaardag ActiveCell.FormulaR1C1 = "=RC[-1]-DATE(YEAR(RC[-1]),1,1)" 'Versleep de formule Range("C16:C" & Last_Row).Select Selection.FillDown 'Sorteer de gegevens eerst op kolom A en vervolgens op kolom C Range("A15").CurrentRegion.Sort _ key1:=Range("C15"), order1:=xlAscending, _ key2:=Bereik ("A15"), order2:=xlAscending, _ Header:=xlYes 'De kolom C-kolommen verwijderen ("C"). Bereik verwijderen ("A15"). Selecteer End Sub 

Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.

We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave