Это явно не указано в документации скрипта приложения для ConditionalFormatRuleBuilder
, но методы when____
служат в качестве одноразовых ярлыков, которые определяют, когда правило активируется, путем создания BooleanCondition
за это.
Ограничение, однако, отмечено в документации BooleanCondition
:
Каждое правило условного формата может содержать одно логическое условие.Само логическое условие содержит логические критерии (со значениями) и параметры форматирования.Критерии оцениваются по содержимому ячейки, что приводит к значению true
или false
.Если критерий оценивается как true
, настройки форматирования условия применяются к ячейке.
Таким образом, различные методы when____
не сочетаются с другими методами when___
: какой из них используется последнимправило, является активным для этого правила, поскольку оно заменило предыдущие критерии, которые использовалось этим правилом.
Обратите внимание, что BooleanCondition
является классом только для чтения в скрипте приложений - естьу программиста нет методов для ручного построения или изменения BooleanCondition
.Если бы можно было создать или изменить BooleanCondition
, можно теоретически создать оцениваемое логическое условие, которое оценивает ячейку на основе нескольких критериев.
На данный момент, однако, самый близкий подход - метод whenFormulaSatisfied
., поскольку ваша формула может быть настолько сложной, насколько вы хотите, и выполнять те же вычисления, что и вы, если бы вы могли вручную редактировать BooleanCondition
.
=OR(D1="A", D1="B", D1="C")*NOT(A1="")
Оператор умножения эквивалентен логическому AND
, а сложение будет эквивалентно логическому OR
.