Я пытаюсь использовать VBA для создания правила условного форматирования и применения его к нескольким ячейкам.

Я попытался сделать это, создав правила только для одной ячейки, а затем отредактировав свойство applyto для каждого объекта формата условия. Посмотреть здесь:

Sub test()

    Dim strRange As String
    Dim myRange As Range

    strRange = "$B$4,$B$9:$BS$9"

    With Sheets("Sheet1").Range("B4") 
        .FormatConditions.Delete
        .FormatConditions.Add xlExpression, xlEqual, "=ISBLANK(RC)"
        .FormatConditions(.FormatConditions.Count).SetFirstPriority
        .FormatConditions(1).StopIfTrue = True
        .FormatConditions(1).AppliesTo = strRange
    End With


    End Sub

Кажется, это не работает, потому что, как только он достигает строки AppliesTo, он фактически изменяет значение самой ячейки, а не изменяет свойство AppliesTo условия условия.

Каков наилучший способ изменить свойство "Применяется к" правила условного форматирования ячейки?

Я знаю, что могу изменить свое утверждение "с", чтобы включить другие ячейки, которые я хочу изменить; не только ячейка B4. Проблема в том, что объект range() может принимать только строковый аргумент длиной не более 1024 символов. И по правде говоря, я хочу применить это правило к огромному количеству несмежных ячеек, которое преодолевает ограничение в 1024 символа.

1 ответ1

1

Для этой цели разработан метод ModifyAppliesToRange . Вам также нужно будет преобразовать strRange в объект Range.

.FormatConditions(1).AppliesTo = strRange с .FormatConditions(1).ModifyAppliesToRange Range(strRange)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .