2010-07-28 30 views
3

我使用时间线的电子表格工作,当我遇到并期望遇到某些里程碑时。数据(日期)从左到右存储,每个项目都有自己的行。里程碑是permantely设置和占领范围(O:AA)。我的数据颜色编码为绿色(完整),橙色(截止日期),蓝色(未处理),红色(不适用)。Excel VBA函数根据某个范围内的单元格背景颜色返回True或False

我想要做的是编写一个函数,检查一个单元格是否包含橙色背景(颜色索引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保持值用于过滤文件。

+0

那岂不是更容易进入四码一进每个小区呢?这样您可以使用常规工作簿公式来进行聚合。您仍然可以使用条件格式 - 三种状态的条件格式和第四种的默认单元格颜色来改变背景颜色。 – 2010-07-28 15:11:38

回答

6

像这样的东西会做的伎俩!

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 

这将允许你打电话和测试不同的颜色值....

+1

非常感谢GraGra。这帮助我建立了我正在工作的报告。 – 2010-07-29 20:22:40

相关问题