Нужна помощь для заполнения даты / цветового кода VBA

#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 <> «» Тогда», чтобы применять его только к ячейкам, имеющим значение