所以我从昨天开始重新审视这个问题:
Multi-column vlookup conditional formatting
使用Scott Holtzman提供的条件格式声明(感谢Scott!),一切都按预期工作。现在我遇到了一个小问题。我需要根据背景颜色计算单个细胞,并将其显示在另一张纸上。我发现了这个:https://www.ablebits.com/office-addins-blog/2013/12/12/count-sort-by-color-excel/
VBA脚本可以很好地计算我手动填充的单元格...但它不计算由条件格式化函数填充的单元格。任何人都知道如何绕过这个小小的打嗝?一如既往,任何能提供任何见解的人都会受到赞赏!! :)
答案 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)
希望有所帮助。