Отобразить менеджер правил условного форматирования Excel – Этот лист – Окно

Вопрос или проблема

Я хочу использовать VBA для отображения окна «Управление правилами условного форматирования – Этот лист». Я не могу записать макрос, потому что он обращается к меню Excel.

Путь в меню: Главная > Условное форматирование > Управление правилами > Этот лист

вставьте описание изображения здесь

Буду благодарен за любую помощь.

Sub modConditionalFormattingCheck()
    If ActiveSheet.Cells.FormatConditions.Count = 0 Then
        MsgBox "Условное форматирование не найдено"
    Else
        MsgBox "Условное форматирование найдено"
    End If
End Sub

Я хотел бы заменить оператор Else кодом, который отображает Управление правилами условного форматирования.

Это то, что вы хотите? Однако это покажет только для Текущего выбора. После открытия окна пользователю нужно изменить Текущий выбор на Этот лист.

Option Explicit

Sub modConditionalFormattingCheck()
    If ActiveSheet.Cells.FormatConditions.Count = 0 Then
        MsgBox "Условное форматирование не найдено"
    Else
        Application.Dialogs(xlDialogConditionalFormatting).Show
    End If
End Sub

Ответ или решение

Для решения вашей задачи с использованием VBA, которая позволяет отобразить окно Менеджера правил условного форматирования для текущего листа, можно использовать следующий код. Как вы правильно заметили, стандартный диалог, который открывается с помощью Application.Dialogs, показывает правила только для "Текущего выборки", и пользователю необходимо вручную переключиться на "Этот лист".

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

Option Explicit

Sub modConditionalFormattingCheck()
    ' Проверка наличия условного форматирования на активном листе
    If ActiveSheet.Cells.FormatConditions.Count = 0 Then
        MsgBox "Условное форматирование не найдено"
    Else
        ' Открытие диалогового окна менеджера правил условного форматирования 
        Application.Dialogs(xlDialogConditionalFormatting).Show
        MsgBox "Пожалуйста, выберите 'Этот лист' в диалоговом окне."
    End If
End Sub

Описание кода:

  1. Проверка условного форматирования: Первая часть кода проверяет, есть ли в текущем листе правила условного форматирования. Если их нет, показывается сообщение об этом.
  2. Вызов диалогового окна: Если правила существуют, открывается стандартное окно менеджера правил условного форматирования с указанием текущего выбора.
  3. Инструкция пользователю: Поскольку диалог будет открыт для текущего выделения, выводится сообщение для предупреждения пользователя о необходимости вручную выбрать "Этот лист".

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

Оцените материал
Добавить комментарий

Капча загружается...