如何用vba统计excel中具有相同颜色的单元格区域的个数?

在excel中处理数据时,我们经常会遇到按照单元格的背景色进行统计的情况。

如上图所示,需要统计黄色背景色的单元格个数,可以有以下两种方法:

方法一、用宏表函数Get.Cell(63,A1)定义名称,然后用辅助列统计所有单元格的背景色,最后再统计背景色的数字个数。

方法二、用VBA自定义函数,以下VBA自定义函数可以根据选定的单元格区域的填充色对指定的单元格区域进行计数统计。

Function COUNTBYCOLOR(Rng As Range, Target As Range)
    'Rng参数为要统计的单元格区域
    'Target参数为具有填充色的单元格区域
    If Target.CountLarge >= 1 Then
        iColor = Target.Cells(1).Interior.Color
        Dim oCell As Range
        For Each oCell In Rng
            With oCell
                i = .Interior.Color
                If i = iColor Then
                    iSum = iSum + 1
                End If
            End With
        Next
        COUNTBYCOLOR = iSum
    End If
End Function
       

发表评论