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