如何用VBA统计固定颜色字体的数量?

如何用VBA统计固定颜色字体的数量?如图中需要在J列统计出对应行红色字体的个数,比如J1为4,J2为3,J3为3,其余以此类推。

程序代码:

测试效果:

注意:

由于红有许多种红,颜色太多了,代码是对非黑的进行统计,绿色、蓝色都会包含,代码如下:

Option Explicit


Sub 宏1()

    Dim i&, j&, n&

    For i = 1 To 5

        n = 0

        For j = 1 To 9

            If Cells(i, j).Font.Color <> 0 Then n = n + 1

        Next j

        Cells(i, 10) = n

    Next i

End Sub



如果需要区分特定颜色进行统计,代码中下面的行可能需要修改:

If Cells(i, j).Font.Color <> 0 Then n = n + 1

例如修改位只统计颜色位255的纯红色:

If Cells(i, j).Font.Color = 255 Then n = n + 1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-08-30

因为不知道你标的红色是多么红,所以一定要指定一个取得颜色的单元格。这里我以”标红数“的字体的红色为准,示例一下:


当然,你也可以指定任意一个其他单元格的颜色,比如你表格里的B2,但注意要用绝对地址$B$2这类的形式引用。

Function biaohong(a, b)

For Each c In a

If c.Font.Color = b.Font.Color Then biaohong = biaohong + 1

Next

End Function

这个自定义函数有两个参数,第一个指定计算范围,第二个指定取色单元格。

追问

太谢谢了,代码简单且有效!

本回答被提问者采纳
第2个回答  2021-08-30

Font.Color 属性 (Excel) | Microsoft Docs:font.color

追问

老哥我不懂VBA啊,麻烦直接给个写好的代码

相似回答