Michala有一个调查回复工作表,其中包括不同颜色的不同文本。例如,如果调查答复为“我不喜欢狗”,则“狗”一词可能会被涂成红色,而其余文本为黑色。响应中可能有多种颜色,例如在响应“我喜欢狗和猫”中,单词“ dogs”可能是红色,单词“ cats”是蓝色。 Michala需要一种突出显示一系列单元格并计算有多少单元格包含特定颜色的文本(例如红色或蓝色)的方法。

最好通过开发用户定义的函数来完成计数,以完成计数。以下示例逐步遍历一系列单元格,并对您指定的任何颜色索引值进行计数。

Function CountColorIndex(rng As Range, iColor As Integer)

Dim v As Variant     Dim rCell As Range     Dim str As String     Dim sChar As String     Dim x As Integer     Dim iCount As Integer

iCount = 0     For Each rCell In rng         v = rCell.Font.ColorIndex         If IsNull(v) Then             For x = 1 To Len(rCell.Value)

If rCell.Characters(x, 1).Font.ColorIndex _                   = iColor Then                     iCount = iCount + 1                     Exit For                 End If             Next         ElseIf v = iColor Then             iCount = iCount + 1         End If     Next     CountColorIndex = iCount End Function

该函数首先查看单元格整体的字体颜色。如果单元格颜色为Null,则表示单个字符的颜色已更改,因此该函数开始浏览每个字符。如果找到匹配的颜色,则计数(iCount)会增加,并且该函数将停止浏览每个字符。

如果单元格颜色不是Null,则该函数将确定单元格整体的字体颜色是否与所需颜色匹配。如果是这样,则计数增加。

对指定范围内的每个单元格重复此过程,然后该函数返回计数值。您可以通过以下方式使用该函数:

=CountColorIndex(B7:D42,3)

此公式检查范围B7:D42以查看是否存在红色实例。然后,该计数由公式返回。

值得一提的是,该函数依赖于颜色索引值。

红色的正常默认值是3,蓝色的默认值是5,但是用户可以修改这些值,并且这些值可能会根据所使用的Excel版本而有所不同。为了使函数返回期望的结果,您需要修改在公式的第二个参数中指定的颜色索引值,以使其代表您特定工作簿中使用的颜色索引。

注意:

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

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

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