试图在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