Я пытаюсь написать коды VBA для условного форматирования (двухцветная шкала) ячейки A1 на основе ее значения между> = ячейка A2 и <= ячейка A3. Я использую ячейки A2 и A3, чтобы я мог изменить конкретный диапазон значений.
Например, если ячейка A2 равна 50, а ячейка A3 равна 1, измените цвет фона ячейки A1 с самого темного зеленого (самый высокий; ячейка A2; 50) на самый светлый зеленый (самый низкий; ячейка A3; 1) в зависимости от значения A1 - если не между 50 и 1, формат не требуется.
Я был в состоянии написать приведенный ниже код для аналогичного экземпляра (в модуле). Код ниже предназначен для заданного диапазона ячеек, и я хочу, чтобы для одной ячейки с меняющимися значениями.
Sub ColorChange()
Application.ScreenUpdating = False
' Fill a range with numbers from 1 to 25.
Dim rng As Range
Set rng = Range("A1:A25")
Range("A1") = 1
Range("A2") = 2
Range("A1:A2").AutoFill Destination:=rng
rng.FormatConditions.Delete
'Add a 2-color scale.
Dim cs As ColorScale
Set cs = rng.FormatConditions.AddColorScale(ColorScaleType:=2)
' Format the first color as light green
With cs.ColorScaleCriteria(1)
.Type = xlConditionValueLowestValue
With .FormatColor
.Color = vbGreen
' TintAndShade takes a value between -1 and 1.
' -1 is darkest, 1 is lightest.
.TintAndShade = 0.5
End With
End With
' Format the second color as dark green, at the highest value.
With cs.ColorScaleCriteria(2)
.Type = xlConditionValueHighestValue
With .FormatColor
.Color = vbGreen
.TintAndShade = -0.5
End With
End With
Application.ScreenUpdating = True
End Sub