Формат печати условного форматирования vba

Я пытаюсь перечислить все правила условного форматирования в книге и в другом месте нашел следующий код. Подпрограмма перечисляет имя листа, применяемую формулу и примененный диапазон. У меня два вопроса:

enter image description here

  1. Как мне добавить дополнительный столбец, показывающий, как будет выглядеть формат?

enter image description here

  1. Есть ли способ изменить правила на вкладке Excel и передать их в диспетчер правил условного форматирования? Как сохранить порядок чего?
Sub List_Conditional_Formatting_Rules()

' Print all conditional formatting rules in the all worksheets
    Application.ScreenUpdating = False

    Dim ws As Worksheet, wsCF As Worksheet, NR As Long
    Dim CFrule As FormatCondition, Rng As range

    On Error Resume Next

    Sheets.Add(After:=Sheets(Sheets.Count)).Name = "CF Rules"   'add sheet
    Set wsCF = Sheets("CF Rules")
    wsCF.range("A1:C1").Value = [{"Sheet","Formula","Range"}]

    NR = 2      'define starting row

    For Each ws In Worksheets
     If ws.Name <> "CF Rules" Then
        Set Rng = ws.Cells

        For Each CFrule In Rng.FormatConditions
            wsCF.range("A" & NR).Value = ws.Name                    ' rule names
            wsCF.range("B" & NR).Value = "'" & CFrule.Formula1      ' formula names
            wsCF.range("C" & NR).Value = CFrule.AppliesTo.Address   ' applied area

            ' want to add a column to show how the format actually looks like

            NR = NR + 1
        Next CFrule
    End If

    Next ws

    wsCF.Columns.AutoFit
    Application.ScreenUpdating = False
    MsgBox ("All conditional formatting rules are printed.")

End Sub

Пожалуйста, дайте мне знать, есть ли какие-либо документы, которые я мог бы прочитать, чтобы лучше понять это. Спасибо!

См. FormatCondition объект, особенно его свойства Interior, Borders и Font. Судя по вашему снимку экрана, похоже, что вы просто (или в основном просто) модифицируете Interior.

BigBen 13.09.2018 20:26

Поэтому сделайте InteriorwsCF.Range("D" & NR") таким же, как CFrule.Interior, установив свойства, например Color, равны друг другу

BigBen 13.09.2018 20:29

Спасибо за замечание! На самом деле у меня также есть цвет / жирность шрифта, но я предполагаю, что эти свойства точно такие же, как и диапазон, верно?

Donald Li 13.09.2018 21:40

Правильно, вы бы использовали тот же подход - хотя объектная модель условного формата не поддерживает все свойства Interior, Borders и Font, которые поддерживает Range.

BigBen 13.09.2018 21:43

Хорошо, попробую посмотреть, что он предлагает :)

Donald Li 13.09.2018 23:51
1
5
367
0

Другие вопросы по теме