Se vuoi scoprire la riga duplicata con più voci per la stessa persona e vuoi scoprire le voci duplicate, non dovresti perdere questo articolo. Forniremo un codice macro per aiutarti a identificare le righe duplicate. In questo articolo, impareremo come trovare righe duplicate in base a una particolare colonna .

Domanda: ho un foglio di calcolo con più voci con data e ora per le persone. Queste persone possono timbrare in entrata o in uscita in più posti contemporaneamente. Cercando di scrivere una formula o una macro (non sono sicuro quale raggiunga lo scopo migliore in questo caso) che cercherà i dati e evidenzierà in linee rosse con i tempi che si sovrappongono per una persona specifica. È possibile ed è qualcosa che qualcuno potrebbe aiutare per favore? Grazie molto.

La domanda originale può essere trovata qui

Di seguito è l’istantanea del foglio precedente:

image 1

Di seguito è l’istantanea del foglio successivo:

image 2

Per ottenere il codice; dobbiamo seguire i passaggi seguenti per avviare la schermata dell’editor di Visual Basic Fare clic sulla scheda Sviluppatore Dal gruppo Codice, selezionare Visual Basic

image 3

  • Copia il codice seguente nel modulo standard

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

immagine: https: //www.office-skill.site/images/wp-content-uploads-2015-07-image-43.png [immagine 4, larghezza = 624, altezza = 293] * Mentre eseguiamo la macro, otterremo il risultato; fare riferimento all’istantanea sottostante:

image 5

Spiegazione del codice:

Dichiara rng, cell, trng, tcell come range Lr finché * lr = Cells (Rows.Count, “A”). End (xlUp) .Row controllerà l’ultima riga del foglio corrente.

  • Intervallo (“A2: H” & lr) .Interior.ColorIndex = xlNone; questo selezionerà l’intervallo dalla cella A2 alla colonna H fino all’ultima riga (A2: H5 verrà selezionato nel nostro esempio) e assicurerà che nessun colore sia riempito.

Imposta rng = Range (“C2: C” & lr); la colonna C (ID profili) verrà memorizzata in rng per ogni cella in rng; ora eseguiremo For each loop in rng, ad esempio colonna C If Application.CountIf (Range (“C2”, cell), cell.Value)> 1 Then; questo controllerà il numero di volte in cui il valore della cella è maggiore di 1; se trovato maggiore di 1, allora Set trng = Range (“F2: F” & cell.Row – 1); ora imposteremo la colonna F cioè

IN time in trng * Il prossimo eseguiremo For Each Loop in trng e controlliamo se c’è qualche riga duplicata ed evidenziamola con il colore rosso se ne trova una.

Conclusione: in questo modo, possiamo trovare valori duplicati utilizzando il codice macro e possiamo rimuoverli in seguito.

image 48

Se i nostri blog ti sono piaciuti, condividilo con i tuoi amici su Facebook. E anche tu puoi seguirci su Twitter e Facebook.

_ Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare, integrare o innovare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]_