除了在工作表中使用值和文本外,Excel还允许您使用颜色来增强数据的含义或为其提供含义。如果您在工作表中使用颜色,您可能想知道是否存在一种方法来计算使用特定填充颜色格式化的单元格的数量。 Excel中没有执行此任务的内在函数,但是您当然可以使用用户定义的函数来创建一个。以下是一个示例,该示例将对以黄色填充颜色格式化的范围内的单元格数量进行计数:

Function CountYellow(MyRange As Range)

Dim iCount As Integer     Application.Volatile     iCount = 0     For Each cell In MyRange         If cell.Interior.ColorIndex = 6 Then             iCount = iCount + 1         End If     Next cell     CountYellow = iCount End Function

要使用该功能,您要做的就是在工作表的单元格中使用以下公式:

=CountYellow(A1:A99)

本示例返回使用黄色填充颜色的A1:A99范围内的单元格数。

请注意,在CountYellow函数中,将检查单元格以查看ColorIndex属性是否等于6。在其他VBA编码中,您可能习惯于看到定义颜色的近似英语常量。在这种情况下,正常的颜色常数不起作用。取而代之的是,ColorIndex属性基于一组索引值进入特定的调色板。如果您有兴趣查看用于不同颜色的各种索引值,请查看ColorIndex属性的VBA联机帮助文件。

一旦知道了如何以这种方式遍历某个范围内的单元格,就很容易根据用于填充该范围内单元格的颜色执行其他类型的操作。例如,您可以将范围内的单元格值相加,或者找到范围内的平均值,而不是简单地计算单元格的数量。您需要做的就是在最里面的If …​ End If结构中对代码进行适当的更改。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(1978)适用于Microsoft Excel 97、2000、2002和2003。