【发布时间】:2016-11-11 23:08:36
【问题描述】:
我有一个地址列表,但某些记录的部分地址已重复。例如有些记录在 D 列和 E 列中都包含“London”。
我想查找并突出显示所有列中的任何重复值,但在同一行中。
到目前为止,我已经编写了下面的代码,但我希望它能够处理包含值的每一列,而不仅仅是我命名的两列。
Dim Lastrow As Long
Dim i As Long
Lastrow = Range("D" & Rows.Count).End(xlUp).Row
For i = 2 To Lastrow
If Range("D" & i).Value = Range("E" & i).Value Then
Range("E" & i).Interior.ColorIndex = 6
End If
Next i
我试图寻找答案,但我只能找到突出显示整个重复行或不同列和行中的重复值的方法。
感谢您抽出宝贵时间阅读本文并为您提供任何帮助。
【问题讨论】:
-
您可以使用条件格式来做到这一点,不需要 VBA。
-
@SJR 感谢 SJR,但除非我不正确地使用条件格式,否则它似乎也会突出显示具有匹配值的不同行。因此,例如,十行具有相同城镇的地址被突出显示,而不仅仅是每行中有重复的行。
-
假设您的数据在 A1 到 B10 中。突出显示您的范围,使 A1 成为活动单元格(突出显示)。然后转到 CF,添加一个公式 = COUNTIF($A1:$A10,A1)>1 并选择您的格式。我认为这应该做你想做的。
-
使用这个公式 = COUNTIF($A1:$B10,A1)>1 仍然会突出显示不同行上的值。因此,如果 A2 包含“Cat”而 B2 包含“Cat”,那么它们都会突出显示,但如果 A3 也是“Cat”,即使 B3 是“Dog”,它也会突出显示。 @SJR
-
公式是=COUNTIF($A1:$A10,A1)>1,你改成B10是错误的。