vba - изменить цвет ячейки на основе определенных значений - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу написать немного кода, который изменяет внутренний цвет ячейки, если выполняется условие.Это условие: если значение (дата) данной ячейки, например, сегодняшняя дата <20, то цвет этой ячейки изменяется.</p>

Я хочу, чтобы эти изменения были применены к четырем ячейкам справа (4 столбца).Саб работает только для одной ячейки.Есть идеи, что не так?Что-то не так с петлей?

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim i As Integer
    If Target.Column = 8 Then
        For i = 2 To i = 6
            If Target.Offset(0, i).Value - Date < 20 Then
                Target.Offset(0, i).Interior.Color = rgbRed
            Else: Target.Offset(0, i).Interior.Color = rgbWhite
            End If
        Next i
    End If
End Sub

1 Ответ

0 голосов
/ 18 декабря 2018
For i = 2 To i = 6

Измените его на

For i = 2 To 5

На 5 , поскольку вы хотите изменить только четыре ячейки со смещением 2, 3, 4 и 5.

Обновление

Если вы хотите остановить форматирование, если значение ячейки пусто, выйдите из цикла при выполнении этого условия:

 For i = 2 To 5
    If Trim(Target.Offset(0, i).Value) = "" Then
        Exit For
    End If
    ...
 Next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...