如何运用宏快速、准确计算一个excel表里各颜色单元格数量?同时我对宏的掌握可以说是一窍不通。

作者:佚名    更新日期:2025-06-20
按ALT+F11 插入-模块
复制下列语句

Function SUMColor(rag1 As Range, rag2 As Range)
Application.Volatile
For Each i In rag2
If i.Interior.ColorIndex = rag1.Interior.ColorIndex Then
SUMColor = SUMColor + CEL.VALUE
End If
Next
End Function

在空白(比如D2)单元格填充要统计的颜色(比如红色)
再在空白单元格输入 =SUMColor(D2,$A$1:$A$7) 这是统计红色单元格的数量
根据实际情况修改要统计颜色区域

可以做,现在问题是有几种颜色、分布情况、统计计算后数据放在那个单元格?
如果可以传个模拟表,做好后再传给你。
[email protected]

其实不一定要用宏
07版本以上的excel可以使用cell函数方便地提取单元格信息
用个数组公式就可以了

求解正确计算excel表格中填充不同颜色的数量,以及宏计算方法,如果可能麻烦详细,谢谢。~

看到的颜色,可能是手动填充的,也可能是条件格式返回的,要区别对待

统计手动填充的颜色的,除了用宏表函数,就只能用自定义函数了

如果不是经常需要统计,可以考虑使用查找中的匹配颜色,全部查找,可以得到数量

要统计同一种颜色单元格的个数有两种方法

使用自定义函数,这个需要在VBA编辑窗口中新建模块编写代码。以下是代码

Function colors(选区 As Range, 颜色 As Range)
a = 颜色.Interior.ColorIndex
For Each b In 选区
If b.Interior.ColorIndex = a Then
k = k + 1
End If
Next
colors = k
End Function
然后输入函数=colors(选区,颜色)
第一参数“选区”指要统计单元格颜色的范围,第二参数“颜色”指统计的颜色单元格引用地址。

2.使用宏表函数,=get.cell(63,单元格),需要注意的是宏表函数必须定义名称才可以发挥作用,比如定义为“颜色”这个名称,然后在工作表中输入公式=颜色,拖动复制公式,最后使用countif函数计算出颜色的个数,比如对红色进行统计,使用定义名称颜色写的公式,得到红色底纹的数值为3,那么公式=countif(范围,3),最后得出统计结果。

以上两种统计方式,相比较使用自定义函数还是比较方便,只要将其复制到模块中便可在本工作簿中使用。