EXCEL如何用VBA判断一部分单元格内容相同的单元格并填充不同的颜色?懂编程语言的高手进,非常感谢!

就像图片这样,B2:K2这10个单元格里有10个数字,有一些是相同的,用VBA判断出来相同的单元格,并为它们填充相同的颜色,相同的数字用相同的颜色。十个数字最多相同也就5组,所以最多用上5种颜色。

要用VBA哦,,真的是麻烦了,,非常感谢高手来帮忙。。

文件已传百度云,其实也可以不用下载,因为就只有十个数字而已。
http://pan.baidu.com/s/1sjqnZBZ

再次感谢!

Sub 宏1()
Dim rga, rgb As Range
Dim i As Integer
Dim arr
arr = Array(3, 4, 6, 7, 8)
For Each rga In Range("b2:k2")
    If Application.WorksheetFunction.CountIf(Range(Cells(2, 2), Cells(2, rga.Column)), rga) = 1 And Application.WorksheetFunction.CountIf(Range("b2:k2"), rga) <> 1 Then
        For Each rgb In Range("b2:k2")
            If rgb = rga Then rgb.Interior.ColorIndex = arr(i)
        Next rgb
        i = i + 1
    End If
Next rga
End Sub

追问

能给代码加个注释吗?方便我理解修改,谢谢

追答Sub 宏1()
Dim rga, rgb As Range
Dim i As Integer
Dim arr
arr = Array(3, 4, 6, 7, 8) '设置填充颜色代码
For Each rga In Range("b2:k2") '从左到右遍历b2:k2单元格
    If Application.WorksheetFunction.CountIf(Range(Cells(2, 2), Cells(2, rga.Column)), rga) = 1 And Application.WorksheetFunction.CountIf(Range("b2:k2"), rga) <> 1 Then '如果该单元格(rga)在B2至当前单元格中第一次出现并且在b2:k2中出现次数大于1
        For Each rgb In Range("b2:k2") '从左到右遍历b2:k2单元格
            If rgb = rga Then rgb.Interior.ColorIndex = arr(i) '将等于rga的单元格填充数组第i个颜色代码表示的颜色
        Next rgb
        i = i + 1
    End If
Next rga
End Sub

颜色代码对照

我要去吃饭了,暂时不会回答追问

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网