Löschen Sie doppelte Datensätze mit VBA in Microsoft Excel

Anonim

In diesem Artikel erstellen wir ein Makro, um doppelte Datensätze aus den Daten zu entfernen.

Rohdaten bestehen aus Mitarbeiterdaten, die Name, Alter und Geschlecht umfassen.

Logikerklärung

Wir haben ein Makro „RemovingDuplicate“ erstellt, um doppelte Datensätze aus den Daten zu entfernen. Dieses Makro bezieht zuerst die Daten in einer Sequenz und vergleicht dann die Werte zweier aufeinanderfolgender Zeilen, um doppelte Datensätze zu finden.

Codeerklärung

ActiveSheet.Sort.SortFields.Clear

Der obige Code wird verwendet, um jede vorherige Sortierung der Daten zu entfernen.

ActiveSheet.Sort.SortFields.Add Key:=Range(Selection.Address), _

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

Der obige Code wird verwendet, um die Daten in der ersten Spalte in aufsteigender Reihenfolge zu sortieren.

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

Der obige Code wird verwendet, um umgekehrte Schleifen anzuwenden, beginnend von der letzten Reihe bis zur ausgewählten Reihe.

ActiveSheet.Rows(i).Shift löschen:=xlUp

Der obige Code wird verwendet, um eine Zeile zu löschen und den Cursor in die obere Zeile zu bewegen.

Bitte folgen Sie unten für den Code

 Option Explicit Sub RemoveDuplicate() 'Variablen deklarieren Dim i As Long 'Bildschirmaktualisierungen deaktivieren Application.ScreenUpdating = False Range("A11").Select ActiveSheet.Sort.SortFields.Clear 'Daten in aufsteigender Reihenfolge sortieren 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 .Apply End With 'Durchlaufen aller Zellen For i = ActiveSheet.Cells(Rows. Count, Selection.Column).End(xlUp).Row To Selection.Row + 1 Step -1 'Wert zweier benachbarter Zellen für doppelte Datensätze vergleichen Wenn ActiveSheet.Cells(i, Selection.Column).Value = ActiveSheet.Cells( (i - 1), Selection.Column).Value Then 'Den doppelten Datensatz löschen ActiveSheet.Rows(i).Delete shift:=xlUp End If Next i 'Bildschirm nach oben aktivieren Daten Application.ScreenUpdating = True End Sub 

Wenn Ihnen dieser Blog gefallen hat, teilen Sie ihn mit Ihren Freunden auf Facebook. Außerdem können Sie uns auf Twitter und Facebook folgen.

Wir würden uns freuen, von Ihnen zu hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns auf der E-Mail-Site