Excel 2013 и VBA> Подсчитать количество правил условного форматирования на листе

0

В Excel есть ограничение на количество правил условного форматирования, которые лист может обработать, прежде чем он заблокируется и больше не будет добавляться. Это может стать проблемой на сложных листах, когда один или несколько пользователей или сценариев VBA много копируют, вставляют и непреднамеренно дублируют правила.

Когда вы используете «Управление правилом ...» в Excel, он дает вам крошечное поле со списком всех правил, представленных на листе (при условии, что вы выбрали «Этот рабочий лист» в качестве области действия). Но это не помогает мне определить имеет ли лист пятьдесят правил или тысячу правил, и не помогает количественно оценить риск, связанный с текущим состоянием этого листа.

Следовательно: Как определить количество правил условного форматирования, представленных в электронной таблице Excel?


Связанные с: Существует ли простой способ управления большим количеством правил условного форматирования?

Steve Taylor
источник

Ответы:

2

Не уверен, насколько вам удобно с VBA, но вот простой скрипт, который найдет ответ для активной рабочей таблицы и отобразит его в окне сообщения:

Sub CountConditions()
    MsgBox ActiveSheet.Cells.FormatConditions.Count & " Conditional Formatting rule(s) found on the current worksheet."
End Sub

Откройте редактор Visual Basic, либо из разработчик вкладка или с Alt + F11 щелкните правой кнопкой мыши имя вашего файла слева и выберите «Вставить | Модуль, затем вы можете скопировать приведенный выше код в модуль, чтобы создать макрос, который сделает всю работу за вас.

С помощью более сложного кода вы можете добавлять условия для просмотра каждого правила и, возможно, удалять дубликаты и т. Д.

Werrf
источник
Werff Я не уверен, что ваш ответ - то, что ему нужно. Я не верю, что существует ограничение на «количество определенных правил» в диапазоне (хотя это было от 3 до XL03), хотя люди сообщали о взрыве на 5000 или около того. FormatConditions.Count сообщает 0,1,2 или 3 (или выше для XL07 +), но не 9000, если вы копируете A1 в A2: A3000, когда в A1 есть 3 условия форматирования (что он сделал). .Count == 3 для этого диапазона. (Также обратите внимание, это -1, если диапазон содержит разные .Count для каждой ячейки). Он МОЖЕТ посчитать количество строк с ячейками с .Count & lt; & gt; 0, так как был (все еще есть?) Предел в 2050 году.
MicrosoftShouldBeKickedInNuts
Итак, .FormatConditions.Count возвращает «количество правил, которые используются» диапазоном, а не количество «использований правил» диапазоном. То есть, в моем примере выше он сообщает 3, а не 9000. Поскольку О.П. сказал, что скопировал много ячеек, .FormatConditions.Count не будет указывать на большое количество ИСПОЛЬЗОВАНИЙ условного формата. Было бы одно и то же «маленькое» число, скопировал ли он ячейку 10 раз или 10 000.
MicrosoftShouldBeKickedInNuts