VBA Можно ли создать условно отформатированную таблицу, которая автоматически обновляет себя? - PullRequest
0 голосов
/ 10 января 2020

Итак, у меня есть лист, который я пытаюсь создать в Excel, где я создаю несколько таблиц (количество переменных, поэтому оно может быть от 5 до 65 таблиц), что я смог сделать. Сейчас я пытаюсь условно отформатировать таблицы, созданные для выделения ячеек на основе простых условий (если ячейка 1 равна «Доступно», а ячейка 2 (формат даты) меньше, чем через неделю, выделите строку красным цветом. Если ячейка 1 равна « Handhand In ", Highlight Row Grey, есть еще несколько очень похожих на это, но условия, которые нужно выделить, не меняются.

Пример таблицы, созданной вручную, показан на рисунке ниже: example output

Как вы можете видеть на изображении, номера столбцов и номера строк являются переменными, однако я не вижу в этом проблемы.

В настоящее время все, что я могу find - это код VBA, который вы должны запускать каждый раз, и он будет обновлять таблицу ( см. здесь ). Однако По сути, я хочу создать код, который будет выполнять ввод вручную всех условий в таблица для меня в диспетчер условий. Проще говоря, я хочу сделать это:

Conditionally formatting Rules manager

1 Ответ

1 голос
/ 10 января 2020

Попробуйте этот код, пожалуйста:

Sub VBAformatting()
  Dim rng As Range, sh As Worksheet
  Dim cond1 As FormatCondition, cond2 As FormatCondition

  Set sh = ActiveSheet 'Please put here your sheet
  Set rng = sh.Range("A1:A10")
  'if the reange is already conditional formated:
   rng.FormatConditions.Delete

   Set cond1 = rng.FormatConditions.Add(xlExpression, Formula1:="=A1=""Available""")
   Set cond2 = rng.FormatConditions.Add(xlExpression, Formula1:="=AND(A1=""Handed In"",B1>3)")

   'Defining and setting the format to be applied for each condition
   With cond1
     .Font.Color = vbWhite
     .Interior.ColorIndex = 3
     .Font.Bold = True
     .Font.Italic = True
     .SetFirstPriority
   End With

   With cond2
    .Font.Color = vbBlue
    .Font.Bold = True
   End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...