从条件格式语句

时间:2015-10-15 15:23:53

标签: excel vba excel-vba conditional-formatting countif

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

Multi-column vlookup conditional formatting

使用Scott Holtzman提供的条件格式声明(感谢Scott!),一切都按预期工作。现在我遇到了一个小问题。我需要根据背景颜色计算单个细胞,并将其显示在另一张纸上。我发现了这个:

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

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

1 个答案:

答案 0 :(得分:1)

不幸的是,没有直接的方法/ VBA方法或属性可以给出应用了条件格式的单元格的颜色。如您所知,默认/手动填充的颜色将被条件格式覆盖。在条件格式化方面,单元格可以应用多个条件,这意味着单元格可以有多种颜色,这是非常动态的。

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

但是,这只给出了分配给每个条件的颜色,如何获得应用这些条件的单元格的当前颜色。您必须使用单元格值手动评估条件,以判断单元格的条件是返回true还是false,然后获取相同的颜色。

似乎很难,不是吗?但是,使用可能有助于获得所需内容的代码可以更好地解释这一点。请参考以下链接,

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

Conditional Formatting Colors

希望有所帮助。