Odstráňte duplicitné záznamy pomocou VBA v programe Microsoft Excel

Anonim

V tomto článku vytvoríme makro na odstránenie duplicitných záznamov z údajov.

Surové údaje pozostávajú z údajov o zamestnancoch, ktoré zahŕňajú meno, vek a pohlavie.

Logické vysvetlenie

Vytvorili sme makro „RemovingDuplicate“ na odstránenie duplicitných záznamov z údajov. Toto makro najskôr získa údaje v sekvencii a potom porovná hodnoty dvoch po sebe idúcich riadkov, aby zistilo duplicitné záznamy.

Vysvetlenie kódu

ActiveSheet.Sort.SortFields.Clear

Vyššie uvedený kód sa používa na odstránenie akéhokoľvek predchádzajúceho zoradenia údajov.

Kľúč ActiveSheet.Sort.SortFields.Add: = rozsah (Selection.Address), _

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

Vyššie uvedený kód sa používa na zoradenie údajov v prvom stĺpci vzostupne.

Pre i = ActiveSheet.Cells (Rows.Count, Selection.Column) .End (xlUp). Row to Selection.Row + 1 Step -1

Vyššie uvedený kód sa používa na použitie reverznej slučky, začínajúc od posledného riadka po vybratý riadok.

ActiveSheet.Rows (i). Vymazať posun: = xlUp

Vyššie uvedený kód sa používa na odstránenie riadka a presunutie kurzora do horného riadka.

Pri kódovaní postupujte podľa nižšie uvedených pokynov

 Voľba Explicitné Sub RemovingDuplicate () 'Deklarovanie premenných Dim I As Long' Zakázanie aktualizácií obrazovky Application.ScreenUpdating = False Range ("A11"). Vyberte ActiveSheet.Sort.SortFields.Clear 'Zoradenie údajov vo vzostupnom poradí ActiveSheet.Sort.SortFields.Add Key: = 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. Použiť koniec s 'Slučka cez všetky bunky pre i = ActiveSheet.Cells ( Count, Selection.Column). End (xlUp). Row to Selection.Row + 1 Step -1 'Porovnanie hodnoty dvoch susedných buniek pre duplicitné záznamy If ActiveSheet.Cells (i, Selection.Column) .Value = ActiveSheet.Cells ( (i - 1), Selection.Column). Hodnota potom 'Odstráňte duplicitný záznam ActiveSheet.Rows (i). Odstrániť posun: = xlUp End If Next i' Povolenie obrazovky nahor termíny Application.ScreenUpdating = True End Sub 

Ak sa vám tento blog páčil, zdieľajte ho so svojimi priateľmi na Facebooku. Môžete nás tiež sledovať na Twitteri a Facebooku.

Budeme radi, ak sa nám ozvete, dajte nám vedieť, ako môžeme zlepšiť našu prácu a zlepšiť ju pre vás. Napíšte nám na emailovú stránku