Excel条件格式中有这么一个功能,突出重复值。作用是将拥有重复值的单元格填充为指定颜色。



But,这种方式只能实现唯一色填充。


意思是,当你选择的单元格区域有很多重复值时,它的展示效果就会如下图所示:



可以看到,示例中的单元格区域已经全部填充为粉色,你无法知道哪些单元格内容是相同的,哪些是不同的,只能知道区域内没有唯一值的结论。


那么如何将区域内拥有同样内容的单元格填充为相同的颜色并且不同内容间的填充色不一致呢?例如下图中的效果。



如果想实现上图中的效果,就不得不使用代码,其实本质上类似于条件格式中的色阶,但是色阶无法对文本进行判断。


Sub 同值同色() Dim dic, Arr(), Brr() Set dic = CreateObject("scripting.dictionary") Arr = Selection For i = 1 To UBound(Arr) '循环数组,此循环获取区域的唯一值 If Not dic.exists(Arr(i, 1)) Then dic(Arr(i, 1)) = Arr(i, 1) '循环符合条件的放入字典 End If Next Brr = dic.Keys For j = 0 To dic.Count - 1 For Each rg In Selection '循环,此循环判断重复值 If rg.Value = Brr(j) Then rg.Interior.ColorIndex = 20 + n End If Next n = n + 1 Next End Sub