W tym artykule stworzymy makro do usuwania zduplikowanych rekordów z danych.
Surowe dane składają się z danych pracowników, które obejmują imię i nazwisko, wiek i płeć.
Wyjaśnienie logiczne
Stworzyliśmy makro „RemovingDuplicate”, aby usunąć zduplikowane rekordy z danych. To makro najpierw pozyskuje dane w sekwencji, a następnie dokonuje porównania między wartościami dwóch kolejnych wierszy, aby znaleźć zduplikowane rekordy.
Wyjaśnienie kodu
ActiveSheet.Sort.SortFields.Clear
Powyższy kod służy do usunięcia wcześniejszego sortowania danych.
ActiveSheet.Sort.SortFields.Add Klucz:=Zakres(Wybór.Adres), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
Powyższy kod służy do sortowania danych w pierwszej kolumnie w kolejności rosnącej.
For i = ActiveSheet.Cells(Rows.Count, Selection.Column).End(xlUp).Row To Selection.Row + 1 Step -1
Powyższy kod służy do zastosowania pętli wstecznej, zaczynając od ostatniego wiersza do wybranego wiersza.
ActiveSheet.Rows(i).Usuń przesunięcie:=xlUp
Powyższy kod służy do usuwania wiersza i przesuwania kursora do górnego wiersza.
Proszę postępować zgodnie z poniższym kodem!
Option Explicit Sub RemovalDuplicate() 'Deklarowanie zmiennych Dim i As Long 'Wyłączenie aktualizacji ekranu Application.ScreenUpdating = False Range("A11").Select ActiveSheet.Sort.SortFields.Clear 'Sortowanie danych w kolejności rosnącej ActiveSheet.Sort.SortFields.Add Klucz:=Range(Selection.Address), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers z 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 'Przewijanie przez wszystkie komórki For i = ActiveSheet.Cells(Row Count, Selection.Column).End(xlUp).Row To Selection.Row + 1 Krok -1 'Porównywanie wartości dwóch sąsiadujących komórek dla zduplikowanych rekordów If ActiveSheet.Cells(i, Selection.Column).Value = ActiveSheet.Cells( (i - 1), Selection.Column).Value Then 'Usuń zduplikowany rekord ActiveSheet.Rows(i).Delete shift:=xlUp End If Next i 'Włączanie screen up daty Application.ScreenUpdating = True End Sub
Jeśli podobał Ci się ten blog, podziel się nim ze znajomymi na Facebooku. Możesz również śledzić nas na Twitterze i Facebooku.
Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy poprawić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail