Как изменить свойство «Применяется к» правила условного форматирования ячейки с помощью VBA?

483
dutsnekcirf

Я пытаюсь использовать 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 символа.

0

1 ответ на вопрос

1
davidmneedham

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

Заменить .FormatConditions(1).AppliesTo = strRange на .FormatConditions(1).ModifyAppliesToRange Range(strRange)

Я так смущен. У меня была открытая библиотека объектов Microsoft Excel VBA на отдельной вкладке браузера, и я полностью игнорировал метод ModifyAppliesToRange. Спасибо, что указали мне на это. Работает отлично. dutsnekcirf 6 лет назад 0

Похожие вопросы