Slet dublerede poster ved hjælp af VBA i Microsoft Excel

Anonim

I denne artikel vil vi oprette en makro til at fjerne dublerede poster fra dataene.

Rådata består af medarbejderdata, som omfatter navn, alder og køn.

Logisk forklaring

Vi har oprettet en makro “RemovingDuplicate” for at fjerne dublerede poster fra dataene. Denne makro kilder først dataene i en sekvens og foretager derefter sammenligning mellem værdier for to på hinanden følgende rækker for at finde ud af dublerede poster.

Kode forklaring

ActiveSheet.Sort.SortFields.Clear

Ovenstående kode bruges til at fjerne enhver tidligere sortering af dataene.

ActiveSheet.Sort.SortFields.Add -nøgle: = Range (Selection.Address), _

SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers

Ovenstående kode bruges til at sortere dataene i den første kolonne i stigende rækkefølge.

For i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp) .Række til markering.Række + 1 Trin -1

Ovenstående kode bruges til at anvende reverse looping, der starter fra sidste række til den valgte række.

ActiveSheet.Rows (i) .Delete shift: = xlUp

Ovenstående kode bruges til at slette en række og flytte markøren til den øverste række.

Følg venligst nedenstående for koden

 Valgmulighed Eksplicit under fjernelseDuplikat () 'Deklarerende variabler Dim i As Long' Deaktivering af skærmopdateringer Application.ScreenUpdating = Falsk Range ("A11"). Vælg ActiveSheet.Sort.SortFields.Clear 'Sortering af data i stigende rækkefølge ActiveSheet.Sort.SortFields.Add Nøgle: = Range (Selection.Address), _ SortOn: = xlSortOnValues, Order: = xlAscending, DataOption: = xlSortTextAsNumbers With ActiveSheet.Sort .SetRange Range (Selection.Offset (1, 0), ActiveSheet.Cells (Rows.Count, Selection.End (xlToRight) .Column) .End (xlUp)) .Header = xlNo .MatchCase = Falsk .Orientation = xlTopToBottom .SortMethod = xlPinYin. Anvend slutningen med 'Looping gennem alle cellerne i i = ActiveSheet.Cells (rækker. Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1 'Sammenligningsværdi for to tilstødende celler for dublerede poster Hvis ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column) .Værdi Derefter 'Slet den dublerede post ActiveSheet.Rows (i) .Sletning shift: = xlUp End If Next i' Aktivering af skærm op dates Application.ScreenUpdating = True End Sub 

Hvis du kunne lide denne blog, kan du dele den med dine venner på Facebook. Du kan også følge os på Twitter og Facebook.

Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet