Gewusst wie: Verwenden von Beispielmakros zum Löschen doppelter Elemente in einer Liste in Excel

Weitere Informationen

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

Beispiel 1: Löschen Sie doppelter Elemente in einer Liste

Das folgende Beispielmakro durchsucht eine Liste im Bereich a1: A100 und löscht alle doppelten Elemente in der Liste. Dieses Makro erfordert, dass Sie nicht leere Zellen in den Listenbereich. Wenn Ihre Liste leere Zellen enthält, Sortieren Sie die Daten in aufsteigender Reihenfolge sind leeren Zellen alle am Ende der Liste.
Sub DelDups_OneList()Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False

' Get count of records to search through.
iListCount = Sheets("Sheet1").Range("A1:A100").Rows.Count
Sheets("Sheet1").Range("A1").Select
' Loop until end of records.
Do Until ActiveCell = ""
' Loop through records.
For iCtr = 1 To iListCount
' Don't compare against yourself.
' To specify a different column, change 1 to the column number.
If ActiveCell.Row <> Sheets("Sheet1").Cells(iCtr, 1).Row Then
' Do comparison of next record.
If ActiveCell.Value = Sheets("Sheet1").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Sheet1").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
End If
Next iCtr
' Go to next record.
ActiveCell.Offset(1, 0).Select
Loop
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub

Beispiel 2: Vergleichen von zwei Listen und Löschen doppelter Elemente

Das folgende Beispielmakro vergleicht eine Liste (Hauptliste) mit einer anderen Liste und löscht doppelte Elemente in der zweiten Liste, die auch in der Hauptliste enthalten sind. Die erste Liste wird im Bereich a1: a10 in Sheet1. Die zweite Liste befindet sich in Tabelle2 im Bereich a1: A100. Verwenden Sie das Makro und führen Sie das Makro entweder Blatt auswählen.
Sub DelDups_TwoLists()Dim iListCount As Integer
Dim iCtr As Integer

' Turn off screen updating to speed up macro.
Application.ScreenUpdating = False

' Get count of records to search through (list that will be deleted).
iListCount = Sheets("sheet2").Range("A1:A100").Rows.Count

' Loop through the "master" list.
For Each x In Sheets("Sheet1").Range("A1:A10")
' Loop through all records in the second list.
For iCtr = 1 To iListCount
' Do comparison of next record.
' To specify a different column, change 1 to the column number.
If x.Value = Sheets("Sheet2").Cells(iCtr, 1).Value Then
' If match is true then delete row.
Sheets("Sheet2").Cells(iCtr, 1).Delete xlShiftUp
' Increment counter to account for deleted row.
iCtr = iCtr + 1
End If
Next iCtr
Next
Application.ScreenUpdating = True
MsgBox "Done!"
End Sub

Referenzen

Für weitere Informationen dazu, wie Sie den Beispielcode in diesem Artikel verwenden können, klicken Sie auf die nachstehende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
290140 wie Ausführen des Beispielcodes aus Knowledge Base-Artikeln
Eigenschaften

Artikelnummer: 291320 – Letzte Überarbeitung: 20.01.2017 – Revision: 2

Feedback