Цель:
У меня есть список имени, фамилии и я хочу выделить дубликаты при вводе нового человека. (или нажмите кнопку, чтобы проверить, не дублирована ли она)
Старое решение:
Первоначально у меня был код, который проверял, является ли Имя первым дубликатом И если фамилия дубликатом, а затем выделен, но на самом деле он не показывает истинные дубликаты, потому что в этом примере:
Тим Смит
Питер Смит
Тим НотСмит
Тим Смит будет выделен, потому что Тим дубликат, а Смит дубликат, а ТимСмит - нет.
Текущий код:
Теперь я просматриваю объединенный список «Имя» и «Фамилия» и, если он повторяется, выделите. Это, очевидно, работает хорошо.
Private Sub CommandButton1_Click()
lastrow = Worksheets("Sheet1").Cells(Rows.Count, 5).End(xlUp).Row
For i = 3 To lastrow
Set myrange = Range("G:G")
Range("G3:G98") = "=CONCATENATE(RC[-2],RC[-1])"
For j = 3 To lastrow
If WorksheetFunction.CountIf(myrange, Worksheets("Sheet1").Cells(j, 7).Value)
<> 1 Then
Worksheets("Sheet1").Cells(j, 5).Interior.ColorIndex = 8
Worksheets("Sheet1").Cells(j, 6).Interior.ColorIndex = 8
End If
Next
Next
End Sub
Так что вместо этого я не хочу, чтобы объединенный столбец в наборе данных существовал как память или что-то в этом роде. Может в массиве?
Я просто хочу проверить, были ли дубликаты, если бы у меня был такой столбец, но я бы не создавал этот столбец. Мне нужно, чтобы рабочий лист и его столбцы были согласованными. Поэтому у меня не может быть дополнительного столбца, такого как concat.
Я полностью открыт для разных стратегий. Есть много способов снять кожу с кошки.
Основная цель - выделить настоящие дубликаты. Идеально при вводе нового человека или при нажатии кнопки.