Я пытаюсь написать коды 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
