Odstraňte duplicitní záznamy pomocí VBA v aplikaci Microsoft Excel

Anonim

V tomto článku vytvoříme makro pro odstranění duplicitních záznamů z dat.

Nezpracovaná data se skládají z údajů o zaměstnancích, které zahrnují jméno, věk a pohlaví.

Logické vysvětlení

Vytvořili jsme makro „RemovingDuplicate“ pro odstranění duplicitních záznamů z dat. Toto makro nejprve získává data v posloupnosti a poté porovnává hodnoty dvou po sobě jdoucích řádků, aby zjistilo duplicitní záznamy.

Vysvětlení kódu

ActiveSheet.Sort.SortFields.Clear

Výše uvedený kód slouží k odebrání jakéhokoli předchozího řazení dat.

Klíč ActiveSheet.Sort.SortFields.Add: = Rozsah (Selection.Address), _

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

Výše uvedený kód slouží k seřazení dat v prvním sloupci ve vzestupném pořadí.

Pro i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Krok -1

Výše uvedený kód se používá k použití zpětné smyčky, počínaje od posledního řádku do vybraného řádku.

ActiveSheet.Rows (i). Odstranit posun: = xlUp

Výše uvedený kód slouží k odstranění řádku a přesunutí kurzoru do horního řádku.

Pro kód prosím postupujte níže

 Volba Explicitní Sub RemovingDuplicate () 'Deklarace proměnných Dim i As Long' Deaktivace aktualizací obrazovky Application.ScreenUpdating = False Range ("A11"). Vyberte ActiveSheet.Sort.SortFields.Clear 'Třídění dat ve vzestupném pořadí ActiveSheet.Sort.SortFields.Add Klíč: = 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 = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'Looping through the all For For i = ActiveSheet.Cells (. Count, Selection.Column) .End (xlUp) .Row To Selection.Row + 1 Step -1 'Porovnávání hodnoty dvou sousedních buněk pro duplicitní záznamy If ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column) .Value Then 'Smazat duplicitní záznam ActiveSheet.Rows (i). Odstranit posun: = xlUp End If Next i' Povolení obrazovky nahoru data Application.ScreenUpdating = True End Sub 

Pokud se vám tento blog líbil, sdílejte ho se svými přáteli na Facebooku. Také nás můžete sledovat na Twitteru a Facebooku.

Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit naši práci a zlepšit ji pro vás. Napište nám na e -mail