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 函数