Cindy有一个完全格式化的工作表,该工作表在许多单元格中使用颜色。

有些单元格中有值;许多没有。她需要一种方法来计数所有空的彩色单元格,并想知道是否有一种快速的方法来执行此操作。

有几种方法可以获取所需的信息。一种方法是执行以下步骤:

。找出要在计数中使用的颜色。

。按F5。 Excel将显示“转到”对话框。

。单击特殊按钮。 Excel将显示“转到特殊”对话框。

(请参见图1。)

。选择空白单选按钮。

。单击确定。现在,工作表中的所有空白单元格都被选中。

。按Ctrl + F。 Excel将显示“查找和替换”对话框的“查找”选项卡。

。单击选项按钮以展开对话框。 (请参见图2。)

。单击格式按钮。 Excel将显示“查找格式”对话框。

。确保显示“填充”选项卡。 (请参见图3。)

。单击您要搜索的颜色。 (这是您在步骤1中确定的颜色。)

。单击“确定”关闭“查找格式”对话框。

。单击全部查找。

当您执行这些步骤时,Excel在“查找和替换”对话框的底部显示找到的与您的颜色匹配的单元格数。由于您仅在选择空白单元格的情况下开始搜索,因此,结果计数将是所有填充有颜色的空白单元格。

当然,如果您需要多次确定此计数,那么这些步骤将很快变得非常乏味。在这种情况下,最好使用宏。下面的宏逐步遍历您选择的任何范围内的每个空白单元格,并检查其是否包含图案或颜色并且为空。如果满足条件,则该颜色的计数器将增加。

Sub CountBlankColors1()

Dim c As Range     Dim J As Integer     Dim ColorCount(56) As Long

ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

For Each c In Selection         With c.Interior             If .Pattern <> xlNone Then                 If .ColorIndex <> xlNone Then                     If IsEmpty(c) Then                         ColorCount(.ColorIndex) = _                           ColorCount(.ColorIndex) + 1                     End If                 End If             End If         End With     Next c

sTemp = "These are the color counts" & vbCrLf & vbCrLf     For J = 0 To 56         If ColorCount(J) > 0 Then             sTemp = sTemp & "Color " & J & ": " & ColorCount(J) & vbCrLf         End If     Next J

MsgBox sTemp End Sub

当然,您可能不想单独计算不同的颜色。

取而代之的是,您可能只想知道总共有多少个空白单元格填充有任何颜色。在这种情况下,宏变得简单得多。

Sub CountBlankColors2()

Dim c As Range     Dim x As Long

x = 0     ActiveSheet.Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

For Each c In Selection         If c.Interior.Pattern <> xlNone Then             If c.Interior.ColorIndex <> xlNone Then                 If IsEmpty(c) Then x = x + 1             End If         End If     Next c     MsgBox "Number of colored blank cells: " & x End Sub

应当注意,如果通过使用条件格式对单元格进行着色,则不会考虑这些方法。

(实际上,它们根本没有考虑条件格式。)

注意:

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

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

本技巧(12581)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。