从条件格式语句中计算彩色单元格

Counting Colored Cells from a Conditional Formatting statement

所以我从昨天开始重新审视这个:

使用 Scott Holtzman 提供的条件格式化语句,一切都按预期工作(感谢 Scott!)。现在我 运行 遇到了一个小问题。我需要根据背景颜色对单个单元格进行计数,并将其显示在另一个 sheet 中。我发现了这个:

https://www.ablebits.com/office-addins-blog/2013/12/12/count-sort-by-color-excel/

VBA 脚本可以很好地计算我手动填充的单元格...但它不计算由条件格式设置函数填充的单元格。任何人都知道如何解决这个小问题?一如既往,任何能提供任何见解的人都会受到赞赏!! :)

不幸的是,没有直接的方法/VBA 方法或属性可以给出应用了条件格式的单元格的颜色。如您所知,您的 default/manually 填充颜色将被条件格式覆盖。当谈到条件格式时,一个单元格可以应用多个条件,这意味着单元格可以有不止一种颜色,这是非常动态的。

cColor= rng.FormatConditions(1).Interior.ColorIndex ' Color of formula 1 if true
cColor= rng.FormatConditions(2).Interior.ColorIndex ' Color of formula 2 if true
cColor= rng.FormatConditions(3).Interior.ColorIndex ' Color of formula 3 if true

此外,这些格式条件对象设置了优先级值,因此可以根据优先级覆盖它们。您可以 运行 遍历应用于单元格的所有条件并找到每个公式的颜色,

    For i = 1 To rng.FormatConditions.Count
        cColor = rng.FormatConditions(i).Interior.ColorIndex ' Color of formula i
    Next i

但是,这只给出了分配给每个条件的颜色,以及如何获取应用这些条件的单元格的当前颜色。您将必须使用单元格值手动评估条件,以确定单元格 returns 的条件是真还是假,然后获取相同的颜色。

好像很难吧?但是,这可以用代码更好地解释,它可以帮助您获得想要的东西。请参考以下链接,

Get Displayed Cell Color (whether from Conditional Formatting or not)

Conditional Formatting Colors

希望对您有所帮助。