如何通过VBA代码获取Excel 2012的条件格式的颜色比例所产生的颜色

Jur*_*ure 8 excel formatting conditional vba colors

我需要知道:如何通过VBA代码获取Excel 2010条件格式的颜色比例所产生的颜色.随后,这些颜色将由VBA根据下图分配为图表背景:

www.lnkm.cz/Slozka/Example.jpg http://www.lnkm.cz/Slozka/Example.jpg

我对各种网站进行了研究,并且:

  1. 大多数人建议如何通过方法读取条件格式的颜色, <Cell>.FormatConditions(index that is active).Interior.ColorIndex 但在我的情况下它不起作用,因为错误"对象不支持此属性或方法"
  2. 有些人建议自己编写颜色计算(基于单元格值).我找到了各种方法,但是没有一种方法可以计算出与之前由excel计算的颜色相同的颜色(与前一张图片相同的颜色).

所以我问:

  1. 有没有办法直接从细胞中准备好颜色?(或API无法访问这些颜色)
  2. 你知道如何计算与excel计算相同的颜色吗?
  3. 你知道如何解决我的问题吗?

我相信它必须以某种方式工作.

Apr*_*ion 4

如果没有提供更好的答案,您可以尝试以下解决方法:

  1. 将数据链接/复制到图表下的单元格(使用类似的公式=Sheet1!A1
  2. 应用相同的条件格式
  3. 隐藏值(使用自定义数字格式,例如"",即空字符串文字(2 个双引号))
  4. 使图表透明
  5. 将单元格与图表对齐

更新

或者,如果条件格式仅使用 2 个基色 (r1, g1, b1) 和 (r2, g2, b2) 对于 2 个极端情况,则可以尝试通过线性近似计算每个 R、G、B 通道的颜色,这可以是

  • minmax ,例如:0 - 4 000
  • minmax 百分比,例如:10% - 90%
    (我相信你可以使用 % * [max_value - min_value] 来获取实际值)
  • minmax 百分位数,例如:第 0 个百分位数 - 第 100 个百分位数

对于百分比/百分位数选项,您首先需要将实际值转换为百分比/百分位数值,然后使用value < minvalue > max使用角颜色,否则:

r = r1 + (r2 - r1) * (value - min_value) / (max_value - min_value)
g = ...
b = ...
Run Code Online (Sandbox Code Playgroud)