Se você deseja descobrir a linha duplicada com várias entradas para a mesma pessoa e deseja descobrir as entradas duplicadas, então você não deve perder este artigo. Forneceremos um código de macro para ajudá-lo a identificar as linhas duplicadas. Neste artigo, aprenderemos como localizar linhas duplicadas com base em uma coluna específica.
Pergunta: Eu tenho uma planilha com várias entradas com carimbo de hora para as pessoas. Essas pessoas podem entrar ou sair do ponto em vários lugares ao mesmo tempo. Tentar escrever uma fórmula ou macro (não tenho certeza de qual atinge o objetivo melhor neste caso) que irá pesquisar os dados e destacar em linhas vermelhas com tempos que se sobrepõem para uma pessoa específica. Isso é possível e alguém poderia ajudar, por favor? Muito Obrigado.
A pergunta original pode ser encontrada aqui
A seguir está o instantâneo da folha anterior:
A seguir está o instantâneo da folha posterior:
Para obter o código; precisamos seguir as etapas abaixo para iniciar a tela do editor do Visual Basic
- Clique na guia Desenvolvedor
- No grupo Código, selecione Visual Basic
- Copie o código abaixo no módulo padrão
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) Para Cada célula In rng If Application.CountIf (Range ("C2", cell), cell.Value)> 1 Then Set trng = Intervalo ("F2: F" & cell.Row - 1) Para Cada tcell In trng If tcell.Offset (0, -3) = cell Then If (cell.Offset (0, 3)> = tcell And cell.Offset (0, 3) = tcell E cell.Offset (0, 4) <= tcell.Offset (0, 1)) Então Range ("A" & cell.Row & ": H" & cell.Row) .Interior. ColorIndex = 3 End If End If Next tcell End If Next célula End Sub
- Conforme executamos a macro, obteremos o resultado; consulte o instantâneo abaixo:
Explicação do código:
- Declare rng, cell, trng, tcell como intervalo
- Lr enquanto
- lr = Cells (Rows.Count, "A"). End (xlUp) .Row verificará a última linha da planilha atual.
- Range ("A2: H" & lr) .Interior.ColorIndex = xlNone; isso selecionará o intervalo da célula A2 à coluna H até a última linha (A2: H5 será selecionado em nosso exemplo) e garantirá que nenhuma cor seja preenchida.
- Definir rng = intervalo ("C2: C" & lr); a coluna C (ID de perfis) será armazenada em rng
- Para cada célula em rng; agora vamos executar para cada loop em rng, ou seja, coluna C
- If Application.CountIf (Range ("C2", cell), cell.Value)> 1 Then; isso verificará o número de vezes que o valor da célula é maior que 1; se for maior que 1, então
- Definir trng = Range ("F2: F" & cell.Row - 1); agora definiremos a coluna F, ou seja, o tempo IN em trng
- A seguir, iremos executar For Each Loop em trng e verificar se há alguma linha duplicada e destacá-la com a cor vermelha se encontrar uma.
Conclusão: Dessa forma, podemos encontrar valores duplicados usando código de macro e removê-los posteriormente.
Se você gostou de nossos blogs, compartilhe com seus amigos no Facebook. E você também pode nos seguir no Twitter e no Facebook.
Gostaríamos muito de ouvir de você, diga-nos como podemos melhorar, complementar ou inovar nosso trabalho e torná-lo melhor para você. Escreva-nos no site de e-mail