#vba #date #colors
#vba #Дата #Цвет
Вопрос:
Я работаю над кодом vba, чтобы выполнить следующее:
В строке 5, 7, 9, 11, 13, 15, 17, 19, и 21 от столбца D до M. Проверьте значение в этих ячейках (которое является датой). Если дата за 3 месяца до сегодняшней даты, ячейка становится желтой. Если дата за месяц до сегодняшней даты, выделите ячейку оранжевым цветом. Если дата в ячейке сегодняшняя или прошла, выделите ячейку красным цветом.
У меня есть следующее, только диапазон должен быть скорректирован:
Sub ChangeColor()
Dim rCell As Range
With Sheet1
For Each rCell In .Range("D4")
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date 30 Then
rCell.Interior.Color = vbOrange
ElseIf rCell.Value <= Date 90 Then
rCell.Interior.Color = vbYellow
End If
Next rCell
End With
End Sub
Ответ №1:
Это должно сделать это.
Dim rCell As Range
With Sheet1
For Each rCell In .Range("D5:M21") ' Change the Range
If rCell.Row Mod 2 = 1 Then ' Only odd rows
If rCell.Value <= Date Then
rCell.Interior.Color = vbRed
ElseIf rCell.Value <= Date 30 Then
rCell.Interior.Color = RGB(255, 150, 0) ' vbOrange isn't a thing
ElseIf rCell.Value <= Date 90 Then
rCell.Interior.Color = vbYellow
End If
End If
Next rCell
End With
Комментарии:
1. Спасибо, что это помогло, я добавил: «Если rCell.Value <> «» Тогда», чтобы применять его только к ячейкам, имеющим значение