突出显示串联值的重复项,而无需在工作中创建串联值 sheet

Highlight duplicates of concatenated value WITHOUT creating concatenated values in work sheet

目标: 我有一个名字姓氏列表,想在输入新人时突出显示重复项。 (或点击按钮检查是否重复)

旧解决方案: 我最初有一段代码查看 Firstname 是否重复,如果 Lastname 重复,然后突出显示,但实际上并没有显示真正的重复,因为在这个例子中: 蒂姆·史密斯 彼得·史密斯 蒂姆·诺史密斯 Tim Smith 将突出显示,因为 Tim 是重复的,Smith 是重复的,但 TimSmith 不是。

当前代码: 现在,我正在查看 Firstname 和 Lastname 的串联列表,如果重复则突出显示。这显然效果很好。

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 这样的附加列。

我对完全不同的策略持开放态度。给猫剥皮的方法有很多种。

主要目标是突出显示真正的重复项。理想情况下,在输入新人或单击按钮时。

为什么不使用以下公式的条件格式:

=COUNTIFS($E:$E,$E1,$F:$F,$F1)>1

将突出显示所有个重复项

如果您不想突出显示第一个实例,请使用:

=COUNTIFS($E:$E1,$E1,$F:$F1,$F1)>1