如何使用VBA从Excel中的条件格式获取背景颜色

我想要获得在我的VBA脚本中使用Excel中的条件格式规则分配的单元格背景颜色。 我意识到使用Range.Interior.Color属性不具有由Excel应用的条件格式function导致的颜色。

我做了一些研究,我在这里发现了很长的路,它编译和运行,但我没有得到指定的颜色[我总是(255,255,255)]

我正在使用Excel 2016,我想知道是否有一个简单的方法来获得这些信息,使用一些内置的VBA函数或使用任何其他的Excel技巧。

如果您想知道已经通过条件格式规则(CFR) 着色的单元格的颜色,请使用.Range.DisplayFormat.Interior.Color¹。

如果你想明确地知道一个单元格可能是或者可能没有被 CFR 着色的颜色 ,你需要遍历可能影响该单元格的CFR并查看每个.Range.FormatConditions( x ).Interior.Color 。

¹ 注意:.DisplayFormat不适用于工作表UDF。

如果您需要考虑条件格式,则需要Range.DisplayFormat

(在Excel 2010中添加)

。范围或select的格式条件属性应该有助于任何格式使用With … End With

如果你想知道确切的颜色RGB值,你可以尝试录制macros,并获得rgb值。