【问题标题】:Excel VBA Function to Return True or False based on Cell Background Colors in a RangeExcel VBA函数根据范围内的单元格背景颜色返回真或假
【发布时间】:2011-03-22 05:17:12
【问题描述】:

我会保留一份电子表格,记录我的工作时间表,以及我何时满足并期望达到某些里程碑。数据(日期)从左到右存储,每个项目都有自己的行。里程碑是永久设置并占据范围(O:AA)。我的数据颜色编码为绿色(完成)、橙色(截止日期)、蓝色(未处理)、红色(不适用)。

我想做的是编写一个函数来检查单元格是否包含橙色背景(颜色索引 6)并基于此返回 TRUE 或 FALSE。基本上我想汇总所有列中的所有截止日期。最终,我还想集成一个日期检查功能,以便查看哪些截止日期即将到来。

Function ScanForColor(Dates As Range) as Boolean
    If ScanForColor.Interior.ColorIndex = 6 Then
        ScanForColor = True
    Else
        ScanForColor = False
End Function

我想在像 =ScanForColor(O3:AA3) 这样的单元格中调用该函数,并且我将在 AB 列中使用 ScanForColor 函数来保存用于过滤文档的值。

【问题讨论】:

  • 在每个单元格中输入四个代码之一不是更容易吗?这样,您可以使用常规工作簿公式进行聚合。您仍然可以使用条件格式来改变背景颜色 - 三种状态的条件格式和第四种状态的默认单元格颜色。

标签: excel function sorting colors range


【解决方案1】:

这样的事情就可以解决问题!

Function ScanForColor(Cells As Range, ColorValue As Integer) As Boolean
    Dim cell As Range
    For Each cell In Cells
        If cell.Interior.ColorIndex = ColorValue Then
            ScanForColor = True
            Exit For
        End If
    Next
End Function

这将允许您调用和测试不同的颜色值....

【讨论】:

  • 非常感谢 GraGra。这帮助我构建了我正在工作的报告。
猜你喜欢
  • 2013-09-03
  • 1970-01-01
  • 2017-09-17
  • 1970-01-01
  • 2015-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多