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

此特定示例将条件格式应用于 Excel 中当前工作表的A2:A11范围内的重复值。

以下示例展示了如何在实践中使用此语法。

示例:使用 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 函数

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注