Wenn Sie die doppelte Zeile mit mehreren Einträgen für dieselbe Person herausfinden möchten und doppelte Einträge herausfinden möchten, sollten Sie diesen Artikel nicht verpassen. Wir stellen Ihnen einen Makrocode zur Verfügung, mit dem Sie die doppelten Zeilen identifizieren können. In diesem Artikel erfahren Sie, wie Sie doppelte Zeilen basierend auf einer bestimmten Spalte finden.

Frage: Ich habe eine Tabelle mit mehreren Zeitstempeleinträgen für Personen. Diese Personen können an mehreren Orten gleichzeitig ein- oder aussteigen. Der Versuch, eine Formel oder ein Makro zu schreiben (nicht sicher, welches in diesem Fall das Ziel am besten erreicht), das die Daten durchsucht und in roten Linien mit Zeiten hervorhebt, die sich für eine bestimmte Person überschneiden. Ist das möglich und könnte jemand bitte helfen? Danke vielmals.

Die ursprüngliche Frage finden Sie unter here

Es folgt die Momentaufnahme des vorherigen Blattes:

image 1

Es folgt die Momentaufnahme des Nachblatts:

image 2

Um den Code zu erhalten; Führen Sie die folgenden Schritte aus, um den Visual Basic-Editor zu starten. Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Gruppe Code die Option Visual Basic

image 3

aus * Kopieren Sie den folgenden Code in das Standardmodul

Sub FindOverlapTime()

Dim rng As Range, cell As Range, trng As Range, tcell As Range

Dim lr As Long

lr = Cells(Rows.Count, "A").End(xlUp).Row

Range("A2:H" & lr).Interior.ColorIndex = xlNone

Set rng = Range("C2:C" & lr)

For Each cell In rng

If Application.CountIf(Range("C2", cell), cell.Value) > 1 Then

Set trng = Range("F2:F" & cell.Row - 1)

For Each tcell In trng

If tcell.Offset(0, -3) = cell Then

If (cell.Offset(0, 3) >= tcell And cell.Offset(0, 3) <= tcell.Offset(0, 1)) _                 Or (cell.Offset(0, 4) >= tcell And cell.Offset(0, 4) <= tcell.Offset(0, 1)) Then

Range("A" & cell.Row & ":H" & cell.Row).Interior.ColorIndex = 3

End If

End If

Next tcell

End If

Next cell

End Sub

Bild: https: //www.office-skill.site/images/wp-content-uploads-2015-07-image-43.png [Bild 4, Breite = 624, Höhe = 293] * Während wir das Makro ausführen, wir werden das Ergebnis bekommen; Siehe folgenden Schnappschuss:

image 5

Code Erläuterung:

Deklarieren Sie rng, cell, trng, tcell als Bereich Lr so lange * lr = Cells (Rows.Count, „A“). End (xlUp) .Row überprüft die letzte Zeile des aktuellen Blattes.

  • Bereich („A2: H“ & lr) .Interior.ColorIndex = xlNone; Dadurch wird der Bereich von der Zelle A2 bis zur Spalte H bis zur letzten Zeile ausgewählt (in unserem Beispiel wird A2: H5 ausgewählt) und es wird sichergestellt, dass keine Farbe gefüllt ist.

Setze rng = Range („C2: C“ & lr); Spalte C (Profil-ID) wird in rng für jede Zelle in rng gespeichert; Jetzt werden wir für jede Schleife in rng, d. h. Spalte C, ausführen. Wenn Application.CountIf (Bereich („C2“, Zelle), cell.Value)> 1 Dann; Dadurch wird überprüft, wie oft der Zellenwert größer als 1 ist. Wenn mehr als 1 gefunden wird, dann setze trng = Range („F2: F“ & cell.Row – 1); Jetzt setzen wir die Spalte F, d. h.

IN time in trng * Als nächstes führen wir For each Loop in trng aus und prüfen, ob es eine doppelte Zeile gibt, und markieren sie mit roter Farbe, falls eine gefunden wird.

Schlussfolgerung: Auf diese Weise können wir doppelte Werte mithilfe von Makrocode finden und später entfernen.

image 48

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Sie können uns auch auf Twitter und Facebook folgen.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]