1 (изменено: o5andrey, 2021-09-10 17:48:38)

Тема: VBA: узнать что правило условного форматирования сработало

Здравствуйте. Можно ли определить сработало ли правило условного форматирования для конкретной ячейки (без повторной реализации проверки средствами VBA)? Я что-то такого свойства в справке не вижу.

Application.Evaluate(Range("a1").FormatConditions(1).Formula1)  - не то...
Range("a1").FormatConditions(1).AppliesTo - возвращает диапазоны...
Если нельзя тоже напишите. Спасибо.

2

Re: VBA: узнать что правило условного форматирования сработало

o5andrey, добрый день.
Сам я этой темы не касался, могу быть не прав.
Похоже, что нужно сравнивать атрибуты ячейки с атрибутами её объекта .DisplayFormat, например: oCell.Font.Bold = oCell.DisplayFormat.Font.Bold.
Если изменяемые в УФ атрибуты заранее не известны - получается, нужно сравнивать все атрибуты, которые меняются в УФ: объекты .Borders, .Font, .Interior и атрибут .NumberFormat.
Вот тут пример от MS:
https://docs.microsoft.com/en-us/office … playFormat

3

Re: VBA: узнать что правило условного форматирования сработало

Благодарю. Наверное оно, но в моём экселе нет Range.DisplayFormat.
Свою задачу решил проверкой условий средствами VBA.