Если вы хотите найти повторяющуюся строку, имеющую несколько записей для одного и того же человека, и вы хотите найти повторяющиеся записи, вам не следует пропустить эту статью. Мы предоставим код макроса, который поможет вам идентифицировать повторяющиеся строки. В этой статье мы узнаем, как найти повторяющиеся строки на основе определенного столбца .

Вопрос: У меня есть таблица с несколькими записями с отметками времени для людей. Эти люди могут приходить или уходить в нескольких местах одновременно. Попытка написать формулу или макрос (не уверен, какой из них лучше всего подходит для достижения цели в данном случае), который будет искать данные и выделять красные линии с временами, которые совпадают для конкретного человека. Возможно ли это, и может ли кто-нибудь помочь? Большое спасибо.

Исходный вопрос можно найти здесь

Ниже приведен снимок предыдущего листа:

image 1

Ниже приведен снимок после листа:

image 2

Получить код; нам нужно выполнить следующие шаги, чтобы запустить экран редактора Visual Basic. Щелкните вкладку «Разработчик». В группе «Код» выберите Visual Basic

image 3

  • Скопируйте приведенный ниже код в стандартный модуль

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

изображение: https: //www.office-skill.site/images/wp-content-uploads-2015-07-image-43.png [изображение 4, ширина = 624, высота = 293] * Когда мы запускаем макрос, получим результат; см. снимок ниже:

image 5

Пояснение к коду:

Объявите rng, cell, trng, tcell как диапазон Lr как long * lr = Cells (Rows.Count, «A»). End (xlUp) .Row будет проверять последнюю строку текущего листа.

  • Диапазон («A2: H» & lr) .Interior.ColorIndex = xlNone; это выберет диапазон от ячейки A2 до столбца H до последней строки (в нашем примере будет выбран A2: H5) и обеспечит отсутствие заливки цвета.

Установить rng = Range («C2: C» & lr); столбец C (ID профиля) будет сохранен в rng для каждой ячейки In rng; теперь мы будем запускать для каждого цикла в rng, то есть столбца C If Application.CountIf (Range («C2», cell), cell.Value)> 1 Then; это проверит, сколько раз значение ячейки больше 1; если найдено больше 1, установите trng = Range («F2: F» & cell.Row — 1); теперь мы установим столбец F, т.е.

IN time in trng * Затем мы запустим For Each Loop в trng и проверим, есть ли повторяющиеся строки, и выделим их красным цветом, если они найдены.

Заключение: Таким образом, мы можем найти повторяющиеся значения с помощью кода макроса и удалить их позже.

image 48

Если вам понравились наши блоги, поделитесь ими с друзьями на Facebook. А также вы можете подписаться на нас в Twitter и Facebook .

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить, дополнить или усовершенствовать нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]