【问题标题】:Excel user defined function if cell is highlighted then如果单元格突出显示,则 Excel 用户定义函数
【发布时间】:2012-12-04 11:32:08
【问题描述】:

我创建了一个用户定义的函数来确定单元格是否以特定颜色突出显示,它在某些情况下有效,但不是我需要的;基本上,当该单元格永久突出显示该颜色时它可以工作,但我是基于条件格式的,如果单元格由于条件格式而成为该颜色,则该功能不起作用。

    Public Function Active(Rng As Range) As Boolean
        If Rng.Interior.Color = RGB(217, 151, 149) _
            Then Active = True
    End Function

任何关于为什么的帮助将不胜感激。

【问题讨论】:

  • 您需要遍历单元格的条件格式 - 请参阅此处的 Bob Phillips 代码 xldynamic.com/source/xld.CFConditions.html#specific
  • @brettdj 我已经尝试过代码,但似乎 rng.FormatConditions 中的项目不再是 FormatCondition,而是 ColorScale 。我尝试了几种不同的条件格式。我正在使用 Excel 2007。
  • 看看this SP post
  • @Larry FromatConditions 也还在。 ColorScale 适用于 xl07 中作为条件格式选项引入的色阶选项

标签: excel vba user-defined-functions highlight if-statement


【解决方案1】:

对于简单的Conditional Formatting(NONE-Color缩放类型),可以参考@brettdj和@Chuff的外部参考 http://www.xldynamic.com/source/xld.CFConditions.html#specific

How do I find the fill colour value of a conditionally formatted cell in Excel 2007 using vba?

对于颜色缩放条件格式,我尝试过 pasteSpecial 但它不起作用。

对我来说唯一可行的解​​决方案是将范围复制到 MS Word,然后将范围复制回 EXCEL。这将删除条件格式。然后你可以得到背景颜色 Cells(X,Y).interior.color

否则你需要自己实现条件格式的颜色缩放类型。

【讨论】:

    【解决方案2】:

    您能否在 udf 中使用与条件格式相同的标准?不是检查颜色,而是检查条件格式检查的因素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多