【问题标题】:Counting coloured cells doesn't work with conditional formatting in Excel计数彩色单元格不适用于 Excel 中的条件格式
【发布时间】:2015-04-08 15:32:15
【问题描述】:

尝试使用这段 VBA 代码计算我的工作表上某些彩色单元格的数量:

Function CountRed(MyRange)
CountRed = 0
For Each Cell In MyRange
If Cell.Interior.Color = RGB(255, 0, 0) Then
CountRed = CountRed + 1
End If
Next Cell
End Function

基本上,计算红细胞的数量。现在,如果我自己为它们着色,这可以正常工作,但如果我在我的工作表中设置条件格式来为这些单元格着色,它就不起作用了。

这是我的条件:

=AND(NOT(ISBLANK(A3)),ISBLANK(D3))

基本上,如果第一个单元格已填充,而此单元格未填充,则将其着色为红色。

现在,当我使用“CountRed”函数查看此单元格(具有条件格式的单元格)是否为红色时,它不起作用,但是当我“覆盖”它时,即我自己将其填充为红色并再次运行该函数有效。

我认为这可能与在 CountRed 函数之前调用的条件格式有关,但我没有运气:(

【问题讨论】:

  • CF 不会改变 Interior.Color 属性。您最好使用一个计算符合您条件的单元格的公式。从 2010 年开始,有一个 Displayformat 属性反映了显示的格式,但它在从单元格调用的 UDF 中不起作用。
  • 啊,我不知道那是我。感谢您的帮助,为我指明了正确的方向:))

标签: vba excel


【解决方案1】:

这是因为条件格式不是 Interior.color 集合的一部分,因此无法读取或计数。根据具有条件格式的单元格中的基础值是什么,您可以计算文字值。

例如,将单元格值设置为红色、绿色、黄色,但设置条件格式以将背景色和前景色设置为相同。 (即红色上的红色,绿色上的绿色等)这样你就可以计算一些东西。使用您正在解释的值将条件颜色作为计数的列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多