Markieren Sie doppelte Zeilen (nicht Zellen)

1

Ich muss doppelte Zeilen in meinem Excel 2013-Arbeitsblatt hervorheben. Ich kann doppelte Zellenwerte in Zeilen mit der Methode "Hervorheben -> Duplizieren" hervorheben, aber ich versuche, die Zeilen als Ganzes hervorzuheben, die doppelte Werte sind. Wenn nur eine Zelle für diese Zeile unterschiedlich ist, wird sie in meinem Fall nicht als doppelt betrachtet.

Beispiel:

Name    Task     Phone Number
A       Do 1     12345
B       Do 1     12345
A       Do 2     12345
B       Do 1     12345

In der obigen Tabelle sollten nur die Zeilen 2 und 4 hervorgehoben werden.

user3340627
quelle
If only one cell is different for that row then it's not considered duplicate in my case.Was ist dann ein Betrüger? Dies kann mit VBa
Dave
Eine Zeile wird als Duplikat betrachtet, wenn eine andere Zeile vorhanden ist, die genau dieser entspricht. Sie enthält eine Replik der Zellen der ersten Zeile. Bitte überprüfen Sie das Beispiel, das ich hinzugefügt habe.
user3340627

Antworten:

0

Sie stellen die Zeilen zu markieren , aber ich vermute , dies kann problematisch sein (obwohl Sie beschreiben nicht , warum Sie das wollen). Angenommen, Sie haben 10 Zeilen und viele davon stimmen mit anderen Zeilen überein, sieht Ihr Arbeitsblatt wie folgt aus

Bildbeschreibung hier eingeben

Das Problem ist, dass Sie keine Ahnung haben, welche Zeile mit welcher Zeile übereinstimmt!

Das Problem tritt auch beim nächsten Ausführen des Skripts auf. Die Hervorhebung bleibt bestehen.

Als solche biete ich eine Lösung mit einer zusätzlichen Informationssäule an (Screenshot unten):

Sub WalkThePlank()

Dim startRow As Integer
startRow = 2                 'Update this to lead us to the treasure

Dim row As Integer
row = startRow

Do While (Range("A" & row).Value <> "")

    Dim innerRow As Integer
    innerRow = row + 1

    Dim name As String
    Dim task As String
    Dim phone As String

    name = Range("A" & row).Value
    task = Range("B" & row).Value
    phone = Range("C" & row).Value

    Do While (Range("A" & innerRow).Value <> "")


        If (Range("A" & innerRow).Value = name And Range("B" & innerRow).Value = task And Range("C" & innerRow).Value = phone) Then
            Range("D" & row).Value = Range("D" & row).Value & innerRow & ", "
            Range("D" & innerRow).Value = Range("D" & innerRow).Value & row & ", "
            'Rows(row).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING

            'Rows(innerRow).Interior.ColorIndex = 6      'UNCOMMENT THIS LINE IF YOU WANT HIGHLIGHTING
        End If

    innerRow = innerRow + 1
    Loop

    row = row + 1
Loop

End Sub

Das ist was es tut

Bildbeschreibung hier eingeben

Tun Sie dies auf einer Kopie Ihrer Datei - es gibt keine Funktion zum Rückgängigmachen!

Beachten Sie, dass der Code 2 Zeilen enthält, in denen angegeben ist, welche Zeile Sie auskommentieren müssen (entfernen Sie die erste Zeile in 'diesen Zeilen, und sie werden hervorgehoben).

Wie füge ich VBA in MS Office hinzu?

Dave
quelle