理查德(Richard)试图使用“查找和替换”(Find and Replace)来计算使用特定填充颜色格式化的单元格。除非填充是条件格式的结果,否则此方法工作正常。在这种情况下,“查找和替换”找不到它们。但是,仍然可以根据其填充颜色来过滤包含条件格式的单元格的行。理查德想知道为什么,如果自动筛选器能够检测到两种格式的单元格,“查找和替换”都无法找到这些单元格。

当然,任何可能作为“为什么”提供的东西都是猜测。 (有很多次我想知道为什么Microsoft选择按照自己的方式做事。)话虽如此,有意义的是,将对Find and Replace进行编码,以便您可以找到可以替换的事情。由于条件格式而显示的填充颜色仅仅是显示颜色,而不是真实的填充颜色。显示颜色无法替换,因此无法找到它们。

但是,您可以使用其他方法来显示所需的计数-宏。下面的宏查看特定范围内的所有单元格,如果找到与所需颜色的匹配项,则计数器递增。 (检查的是.DisplayFormat对象,因此颜色为“显示时”,这意味着它也与条件格式可能显示的内容匹配。)

Sub CountCellColors()

Dim Rng As Range     Dim c As Range     Dim Colr As Variant     Dim J As Integer     Dim sTemp As String

Set Rng = Range("A1:Z500") 'Change as needed     Colr = vbYellow            'Set color you want to count

J = 0     sTemp = ""

For Each c In Rng         If c.DisplayFormat.Interior.Color = Colr Then             J = J + 1             sTemp = sTemp & vbCr & "     " & c.Address         End If     Next c

Select Case J         Case 0             sTemp = "There are no colored cells in the range."

Case 1             sTemp = "There is 1 colored cell in the range:" _               & vbCr & sTemp         Case Else             sTemp = "There are " & J & " colored cells in the range:" _               & vbCr & sTemp     End Select     MsgBox sTemp End Sub

宏运行完毕后,它将显示一个消息框,其中显示颜色匹配的数目以及匹配的单元格的地址。如所写,宏检查单元格A1:Z500,并在单元格中查找黄色填充。可以将设置这些值的两行更改为适合您需要的任何行。

注意:

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

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

本提示(13742)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。