Vba: применить условное форматирование к повторяющимся значениям


Вы можете использовать следующий базовый синтаксис в VBA, чтобы применить условное форматирование для дублирования значений в определенном диапазоне:

 Sub ConditionalFormatDuplicates()

Dim rg As Range
Dim uv As UniqueValues

'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate

'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True

End Sub

В этом конкретном примере условное форматирование применяется к повторяющимся значениям в диапазоне A2:A11 текущего листа Excel.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Использование VBA для применения условного форматирования к повторяющимся значениям

Предположим, у нас есть следующий столбец значений в Excel:

Предположим, мы хотим применить следующее условное форматирование к повторяющимся значениям в столбце A:

  • Синий фон
  • Черный текст
  • Жирный текст

Для этого мы можем создать следующий макрос:

 Sub ConditionalFormatDuplicates()

Dim rg As Range
Dim uv As UniqueValues

'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")

'clear any existing conditional formatting
rg.FormatConditions.Delete

'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate

'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что условное форматирование применяется к каждой ячейке в столбце A с повторяющимся значением.

Если вы хотите применить условное форматирование к другому диапазону ячеек, просто замените A2:A11 в макросе другим диапазоном.

Кроме того, если вы хотите удалить все условное форматирование из ячеек на текущем листе, вы можете создать для этого следующий макрос:

 Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что из ячеек было удалено любое условное форматирование.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: Как подсчитать уникальные значения в диапазоне
VBA: как подсчитать ячейки с определенным текстом
VBA: как писать функции COUNTIF и COUNTIFS

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *