Для этой цели разработанModifyAppliesToRange
метод . Вам также нужно будет преобразовать объект Range.strRange
Заменить .FormatConditions(1).AppliesTo = strRange
на .FormatConditions(1).ModifyAppliesToRange Range(strRange)
Я пытаюсь использовать 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 символа.
Для этой цели разработанModifyAppliesToRange
метод . Вам также нужно будет преобразовать объект Range.strRange
Заменить .FormatConditions(1).AppliesTo = strRange
на .FormatConditions(1).ModifyAppliesToRange Range(strRange)