I den här artikeln kommer vi att skapa ett makro för att sortera data i arket efter födelsedag och vi kommer inte att överväga år medan vi sorterar data.
Rådata består av två kolumner, en innehåller namnet och andra kolumnen innehåller födelsedatum.
Logisk förklaring
Vi har skapat ett makro, "sorting_names_by_birthday" som kommer att sortera data.
I detta makro infogar vi först formler i kolumnen C där vi hittar skillnaden mellan födelsedatum och första datum för deras födelseår. Sedan sorterar vi data efter Namn för att sortera data i alfabetisk ordning så att om två kandidater har samma födelsedatum ska deras namn visas i alfabetisk ordning. Sedan sorterar vi data genom att beräkna skillnaden i stigande ordning för att sortera data efter födelsedag. Efter sortering av data, för att radera formlerna från kolumn C, ta bort hela kolumnen C.
För att köra makrot, tryck på Alt +F8 eller Gå till fliken Utvecklare> klicka på Makro.
Följ koden nedan
Alternativ Explicit Sub sorting_names_by_birthday () 'Inaktivera skärmuppdatering Application.ScreenUpdating = False Dim Last_Row As Long' Hitta sista raden Last_Row = ActiveCell.SpecialCells (xlCellTypeLastCell) .Räckvidd ("C16"). Välj "Få årets dagar" Subtrahera årets första datum från födelsedagen ActiveCell.FormulaR1C1 = "= RC [-1] -DATE (YEAR (RC [-1]), 1,1)" 'Dra formeln Range ("C16: C" & Last_Row) .Välj Selection.FillDown 'Sortera data först efter kolumn A sedan efter kolumn C Range ("A15"). CurrentRegion.Sort _ key1: = Range ("C15"), order1: = xlAscending, _ key2: = Range ("A15"), order2: = xlAscending, _ Header: = xlJa 'Radera kolumn C -kolumner ("C"). Radera intervall ("A15"). Välj Avsluta sub
Om du gillade den här bloggen, dela den med dina vänner på Facebook. Du kan också följa oss på Twitter och Facebook.
Vi vill gärna höra från dig, låt oss veta hur vi kan förbättra vårt arbete och göra det bättre för dig. Skriv till oss på e -postwebbplatsen