首页 > 解决方案 > 根据结果​​比较 2 列和颜色填充

问题描述

我有一列有一个 O 或 C 用于打开和关闭。我的另一列有日期。我想将日期与今天的日期进行比较,并使用打开和关闭来帮助确定是否需要更改颜色以标记对它的关注。这是我到目前为止的代码,但它给了我错误。

Sub datee()
Dim DueDate As Date
Dim OpenClosed As Integer
Dim now As Date


DueDate = Range("D5:D8").Value  ----This is the line that I am getting my error on. 
OpenClosed = Range("E5:E8").Value

If OpenClosed = C Then
With Selection.Interior
activecell.Interior.ColorIndex = 0
End With
ElseIf OpenClosed = O Then
If DueDate < now Then
With Selection.Interior
activecell.Interior.ColorIndex = 255
End With
ElseIf OpenClosed = O Then
If DueDate > now Then
With Selection.Interior
activecell.Interior.ColorIndex = 0
End With
End If
End If
End If
End Sub

标签: excelvba

解决方案


试试这个代码。我添加了第三种颜色以获得更多选择。如果你想改变它,这取决于你。

Sub date()
Dim i As Integer

For i = 5 To 8
    If Range("E" & i).Value = "C" Then
        Range("D" & i).Interior.COLOR = vbGreen
    Else
        ' all of these will be assumed to be "O" or not "C"
        If CDate(Range("D" & i).Value) < CDate(Date) Then
            Range("D" & i).Interior.COLOR = vbRed
        Else
            Range("D" & i).Interior.COLOR = vbWhite
        End If
    End If
Next i

End Sub

我不确定您要为哪些单元格着色。所以我假设日期单元格将被着色。如果要包含 OpenClosed 列,只需像这样修改这些行:

Range("D" & I & ":E" & i).Interior.COLOR = vbRed

推荐阅读