试图在VBA中为以下内容插入if;

在我的K栏中,我需要三个条件:


日期是今天或更早(例如,项目截止日期是今天或更早)=红色
日期是今天+最多7天=琥珀色
日期是今天少于7天=绿色


我当时正在考虑使用以下方法:

Sub ChangeColor()
    lRow = Range("K" & Rows.Count).End(xlUp).Row
    Set MR = Range("K3:K" & lRow)
    For Each cell In MR
        If cell.Value = "TODAY" Then cell.Interior.ColorIndex = 10
        If cell.Value = "TODAY-7days" Then cell.Interior.ColorIndex = 9
        If cell.Value = "Morethan7Days" Then cell.Interior.ColorIndex = 8
    Next
End Sub


我一直在尝试,但不确定如何去做。

我认为我的方法是正确的,但是我不确定如何编写If date = -7days then等等。

有人可以提供一些指导吗? :)

最佳答案

VBA具有一个Date函数,该函数返回今天的日期。 VBA中的日期是自1900年12月31日以来的天数(通常并带有leap年错误),因此您可以在Date中减去或添加整数以获取过去和将来的天数。

Sub ChangeColor()

    Dim rCell As Range

    With Sheet1
        For Each rCell In .Range("K3", .Cells(.Rows.Count, 11).End(xlUp)).Cells
            If rCell.Value <= Date Then
                rCell.Interior.Color = vbRed
            ElseIf rCell.Value <= Date + 7 Then
                rCell.Interior.Color = vbYellow
            Else
                rCell.Interior.Color = vbGreen
            End If
        Next rCell
    End With

End Sub

09-30 21:50