Вы хотите обновить его при вводе значений?если это так, то вы могли бы использовать событие Worksheet_Change, оно немного грубое, но сработало бы.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value = "False" Then
With Target.Offset(0, -3).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End Sub
Нужно больше подробностей, чтобы помочь вам в дальнейшем, если вы хотите что-то, что вы можете запустить по мере необходимости, тогда онодолжно быть довольно просто для вас преобразовать это в подпрограмму, а не в событие, просто опросить использованные данные.
Исходя из ваших комментариев, что-то вроде этого будет делать то, что вы хотите:
Sub Temp()
Dim X As Long
For X = 1 To Range("E" & Rows.Count).End(xlUp).Row
If Range("E" & X).Value = "False" Then
With Range("E" & X).Offset(0, -3).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
Next
End Sub
Измените "E"
в обоих случаях Range
, если хотите, чтобы он опрашивал другой столбец.