我想找到重复项,并使用我们指定的单元格值在Excel 2010中的活动工作表的每一列中突出显示它。例如,有5列,即#34; S.No"," ID"," Name"," Desc",&#34 ;金额"这是默认值(注意:列值始终相同,而列号可能每次都不同)。所以,在这种情况下,我想根据列值找到重复项。如果列X =" S.No"然后,找到重复项并突出显示它..和/或如果列X =" ID"找到重复并突出显示它。
我有一个代码,但这只适用于A列。请帮助我提供更新,以便在活动工作表的每一列中查找所有重复项,如上所述。
Sub DupEntry()
Dim cel As Variant
Dim rng As Range
Dim clr As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Set rng = Range("A1:A" & Range("A1048576").End(xlUp).Row)
rng.Interior.ColorIndex = xlNone
clr = 3
For Each cel In rng
If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then
If WorksheetFunction.CountIf(Range("A1:A" & cel.Row), cel) = 1 Then
cel.Interior.ColorIndex = clr
clr = clr + 1
Else
cel.Interior.ColorIndex = rng.Cells(WorksheetFunction.Match(cel.Value, rng, False), 1).Interior.ColorIndex
End If
End If
Next
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
答案 0 :(得分:0)
使用"条件格式"可以达到预期的效果。 Excel工作表中的功能:
选择A栏
点击条件格式菜单按钮,然后选择"突出显示细胞规则"和"复制值":从下拉列表中指定颜色。
对其他列重复相同的步骤。
如果您希望使用VBA解决方案突出显示不同颜色的重复项,那么只需将其应用于其他列:查看该行
Set rng = Range("A1:A" & Range("A1048576").End(xlUp).Row)
所以,而不是列" A"使用Column" B"等。我建议在指定的Columns范围内使用迭代。只需稍作更改即可实现,如以下示例代码段所示:
Sub DupEntry()
Dim cel As Variant
Dim rng As Range
Dim clr As Long
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Sample Array of Columns
Dim Col(1 To 3) As String
Col(1) = "A"
Col(2) = "B"
Col(3) = "C"
'Iterate through Columns
For i = 1 To 3
'Set rng = Range("A1:A" & Range("A1048576").End(xlUp).Row)
Set rng = Range(Col(i) & "1:" & Col(i) & Range(Col(i) & "1048576").End(xlUp).Row)
rng.Interior.ColorIndex = xlNone
clr = 3
For Each cel In rng
If Application.WorksheetFunction.CountIf(rng, cel) > 1 Then
'If Application.WorksheetFunction.CountIf(Range("A1:A" & cel.Row), cel) = 1 Then
If Application.WorksheetFunction.CountIf(Range(Col(i) & "1:" & Col(i) & cel.Row), cel) = 1 Then
cel.Interior.ColorIndex = clr
clr = clr + 1
Else
cel.Interior.ColorIndex = rng.Cells(WorksheetFunction.Match(cel.Value, rng, False), 1).Interior.ColorIndex
End If
End If
Next
Next i
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
(原始代码行被注释掉)。或者,您可以使用单元格R1C1
表示法。
希望这会有所帮助。最好的问候,