Excel允许您将各种格式应用于工作簿中的单元格。您可以做的一件事是使用图案或颜色“遮盖”单元格。 (您可以在“设置单元格格式”对话框的“模式”选项卡上执行此操作。)有时,您可能想知道某个范围中有多少个单元格被阴影化。

Excel中没有工作表公式,该公式可以让您计算阴影单元格。相反,您必须开发自己的宏才能执行此操作。下面的宏是解决此问题的方法的示例。它对A1到J20范围内的阴影单元数进行计数,并将计数放入单元格A1中。

Sub CountColor()

Dim irow, icol As Integer

Cells(1, 1) = 0     For irow = 1 To 20         For icol = 1 To 10             If Cells(irow, icol).Interior.ColorIndex _               <> xlColorIndexNone Then                 Cells(1, 1) = Cells(1, 1) + 1             End If         Next icol     Next irow End Sub

注意,例程的核心是每个单元格的ColorIndex与预定义的xlColorIndexNone常数之间进行的比较。如果它们不相等,则说明该单元已以某种方式着色。

这种相同的基本技术可以轻松地适应自定义功能。

在下面注意,相同的比较是逐个单元进行的:

Function FindShades(a As Range) As Integer     FindShades = 0     For Each c In a         If c.Interior.ColorIndex <> xlColorIndexNone Then             FindShades = FindShades + 1         End If     Next c End Function

为了使用此功能,只需在单元格中将其用作公式,并在公式中指定范围:

= FindShades(B7:E52)

注意:

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

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

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