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

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

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

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

再次感谢!
展开
 我来答
复仇之牙
2015-08-17 · TA获得超过2250个赞
知道大有可为答主
回答量:1663
采纳率:78%
帮助的人:1517万
展开全部

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

颜色代码对照

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式