Wie kann ich mit vba doppelte werte hervorheben?

Bei der Arbeit mit großen Datenmengen sind doppelte Werte immer ein Problem. Meistens verwende ich die Option „Duplikate entfernen“, um alle diese Werte zu entfernen. Und ich bin sicher, dass Sie dasselbe tun.

Aber das Entfernen dieser doppelten Werte oder einfach nur das Zählen behebt das Problem nie. Wichtig ist, alle doppelten Werte zu prüfen, bevor Sie sie entfernen.

Ja, es ist wahr. Sobald Sie alle diese Werte markiert haben, können Sie sie überprüfen und anschließend löschen. Heute möchte ich Ihnen in diesem Artikel 4 verschiedene VBA-Codes vorstellen, um doppelte Werte hervorzuheben.

Und die Sache ist, dass diese Codes Zellen auf unterschiedliche Weise hervorheben können. Sie können sie einfach kopieren und in Ihren VBA-Editor einfügen und verwenden.

1. In jeder Zeile

Dieser VBA-Code überprüft alle Zellen in einer Zeile und hebt alle Zellen hervor, die in einer Zeile dupliziert werden. Vereinfacht ausgedrückt: Wenn eine Zeile zweimal den Wert „522“ hat, wird sie als Duplikat betrachtet. Befindet sich der andere 522 jedoch in einer anderen Reihe, wird er als einzigartig betrachtet.

Markieren Sie doppelte Werte jeder Zeile mithilfe von VBA-Code
 Sub DuplicateValuesFromRow() 'Declare All Variables. Dim myCell As Range Dim myRow As Integer Dim myRange As Range Dim myCol As Integer Dim i As Integer 'Count Number of Rows and Columns myRow = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Count myCol = Range(Cells(1, 1), Cells(1, 1).End(xlToRight)).Count 'Loop Each Row To Check Duplicate Values and Highlight cells. For i = 2 To myRow Set myRange = Range(Cells(i, 2), Cells(i, myCol)) For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next Next End Sub

Wenn Sie sich dieses Makro ansehen, werden Sie feststellen, dass wir eine Schleife verwendet haben, um jede Zeile auf doppelte Werte zu überprüfen und diese mit einer Farbe hervorzuheben.

Wichtige Punkte

  1. Ihre Daten dürfen keine leere Zeile oder Spalte enthalten, andernfalls wird diese Zelle ignoriert.
  2. Die Startzelle für Ihre Daten sollte Zelle „A1“ sein. Und wenn Sie den Startpunkt anpassen möchten, müssen Sie den Code anpassen.
  3. Die erste Zeile und erste Spalte Ihres Datenblatts müssen eine Überschrift sein.

2. In jeder Spalte

Dieser VBA-Code überprüft alle Zellen in einer Spalte und hebt alle Zellen hervor, die in jeder Spalte dupliziert sind. Vereinfacht ausgedrückt: Wenn eine Spalte zweimal den Wert „231“ hat, wird sie als Duplikat betrachtet. Wenn jedoch eine weitere „231“ in einer anderen Spalte steht, wird sie als eindeutig betrachtet.

Markieren Sie doppelte Werte jeder Spalte mithilfe von VBA-Code
 Sub DuplicateValuesFromColumns() 'Declare All Variables Dim myCell As Range Dim myRow As Integer Dim myRange As Range Dim myCol As Integer Dim i As Integer 'Count number of rows & column myRow = Range(Cells(1, 1), Cells(1, 1).End(xlDown)).Count myCol = Range(Cells(1, 1), Cells(1, 1).End(xlToRight)).Count 'Loop each column to check duplicate values & highlight them. For i = 2 To myRow Set myRange = Range(Cells(2, i), Cells(myRow, i)) For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next Next End Sub

3. In der Auswahl

Angenommen, Sie möchten nur Zellen mit doppelten Werten aus der Auswahl hervorheben. Dieser Code kann Ihnen dabei helfen. Um diesen Code zu verwenden, wählen Sie einfach einen Zellbereich aus und führen Sie diesen Code aus. Es überprüft jede Zelle mit der Auswahl und hebt sie rot hervor, wenn eine Zelle einen doppelten Wert hat.

Markieren Sie doppelte Werte aus der Auswahl mithilfe von VBA-Code
 Sub DuplicateValuesFromSelection() Dim myRange As Range Dim i As Integer Dim j As Integer Dim myCell As Range Set myRange = Selection For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next End Sub

4. Ganzzahlige Daten

Wenn Sie über einen großen Datensatz verfügen, können Sie diesen Makrocode verwenden, um die Vollständigkeit der Daten zu überprüfen und doppelte Werte hervorzuheben. Dieser Code geht jede Zelle einzeln durch und wendet die rote Farbe auf alle Zellen an, die Duplikate sind.

 Sub DuplicateValuesFromTable() Dim myRange As Range Dim i As Integer Dim j As Integer Dim myCell As Range Set myRange = Range(“Table1”) For Each myCell In myRange If WorksheetFunction.CountIf(myRange, myCell.Value) > 1 Then myCell.Interior.ColorIndex = 3 End If Next End Sub

Wichtiger Hinweis: Im obigen Code haben wir den Tabellennamen „Tabelle1“ verwendet. Sie können diesen Namen im Code ändern. Wenn Sie nun einen Bereich haben, können Sie einfach den Bereichsnamen verwenden.

[Bonus-Tipp] Zählen Sie doppelte Werte

Mit diesem Code können Sie die Anzahl der doppelten Werte aus der Auswahl zählen. Wenn Sie diesen Code ausführen, wird ein Meldungsfeld mit der Nummer zurückgegeben.

 Sub CountDuplicates() Dim i As Integer Dim j As Integer Dim myCell As Range Dim myRange As Integer myRange = Range("Table1").Count j = 0 For Each myCell In Range("Table1") If WorksheetFunction.CountIf(Range("Table1"), myCell.Value) > 1 Then j = j + 1 End If Next MsgBox j End Sub

Auch im obigen Code haben wir einen Tabellennamen verwendet, den Sie ändern oder durch einen Bereich ersetzen können.

Beispieldatei

Laden Sie diese Beispieldatei hier herunter, um mehr zu erfahren.

Abschluss

In verschiedenen Situationen müssen wir auf unterschiedliche Weise nach doppelten Werten suchen. Und alle oben genannten Codes können Ihnen in dieser Hinsicht hilfreich sein. Wenn Sie möchten, können Sie die Hervorhebungsfarbe der Codes mithilfe der Farbindexnummer ändern.

Jetzt hilf mir bei einer Sache.

Wo können wir diese Codes verbessern?

Bitte teilen Sie mir Ihre Gedanken im Kommentarbereich mit, ich würde mich freuen, von Ihnen zu hören. Und vergessen Sie nicht, diesen Tipp mit Ihren Freunden zu teilen.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert