ARTICLE · 1300901
Excel-别再点半天条件格式!VBA一键批量标色,差异、异常、重复值自动高亮
Excel-别再点半天条件格式!VBA一键批量标色,差异、异常、重复值自动高亮
手工添加条件格式,数据一改就要重新设置,上千行表格调起来特别磨人。尤其是做数据对比、差异核对的时候,经常要反复新增、删除规则,还容易出现旧格式残留,看着乱糟糟。
今天这套VBA,延续双文件对比标色的思路,直接用代码控制条件格式:一键清除旧规则、按阈值自动上色、标记重复内容。数据更新之后,点一下宏,颜色立刻刷新,不用再手动去菜单里点点选选。
功能说明
1. 一键清空工作表内所有原有条件格式,避免多条规则冲突、残留
2. 支持自定义区域,按数值阈值标色:大于、小于指定值填充底色
3. 一键高亮区域内重复行/重复单元格
4. 可以按需增删规则,数组处理,大数据量不会卡顿
5. 保留原有单元格底色、字体格式,只增加条件高亮标记
使用说明
- 打开表格,Alt+F11插入模块,粘贴代码
- 改好顶部的参数:目标区域、阈值、颜色
- 运行宏即可;每次更新数据,重新运行一次刷新标记
- 适合:台账差异检查、异常数据预警、重复记录排查、报表快速审数
vba
Sub 一键条件格式标色()
Dim ws As Worksheet
Dim rng As Range
'=====在这里改参数=====
Set ws = ActiveSheet '要处理的工作表
Set rng = ws.Range("A2:Z1000") '标色区域,按需修改
Const 阈值上限 As Double = 100
Const 阈值下限 As Double = 10
'======================
'先清除全部旧条件格式,防止规则堆积冲突
rng.FormatConditions.Delete
'大于阈值上限 标红色填充
With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="=" & 阈值上限)
.Interior.Color = RGB(255, 204, 204)
.Font.Color = RGB(153, 0, 0)
End With
'小于阈值下限 标黄色填充
With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="=" & 阈值下限)
.Interior.Color = RGB(255, 255, 204)
.Font.Color = RGB(153, 102, 0)
End With
'标记重复值 浅蓝色
With rng.FormatConditions.Add(Type:=xlDuplicateValues)
.Interior.Color = RGB(204, 255, 255)
End With
MsgBox "标色完成!已清理旧条件格式,异常值、重复值已标记", vbInformation
End Sub
Sub 清除全部条件格式()
Dim rng As Range
Set rng = ActiveSheet.UsedRange
rng.FormatConditions.Delete
MsgBox "条件格式全部清除", vbInformation
End Sub
拓展玩法
如果你要做两份表差异标色,可以搭配之前双表对比的逻辑:
循环遍历两个区域,数值不一样的单元格单独填充橙色,和上面这套标色代码搭配使用,一份报表同时做到:异常阈值预警 + 跨表差异标记 + 重复标记。
🌹 关注收藏不迷路,专业VBA开发,解放双手提高效率,欢迎咨询。 Excel-VBA-批量重命名文件夹内文件:读取表格新旧文件名,批量修改Excel/图片 Excel VBA|多个文件,批量合并数据导入到当前表 Excel VBA一键按条件追加写入指定工作簿(自动新增行,不覆盖原有数据) 不要再一点点核对考勤!学会这几个函数,半小时工作2分钟做完 告别无效加班!10个职场通用Excel
手工添加条件格式,数据一改就要重新设置,上千行表格调起来特别磨人。尤其是做数据对比、差异核对的时候,经常要反复新增、删除规则,还容易出现旧格式残留,看着乱糟糟。
今天这套VBA,延续双文件对比标色的思路,直接用代码控制条件格式:一键清除旧规则、按阈值自动上色、标记重复内容。数据更新之后,点一下宏,颜色立刻刷新,不用再手动去菜单里点点选选。
功能说明
1. 一键清空工作表内所有原有条件格式,避免多条规则冲突、残留
2. 支持自定义区域,按数值阈值标色:大于、小于指定值填充底色
3. 一键高亮区域内重复行/重复单元格
4. 可以按需增删规则,数组处理,大数据量不会卡顿
5. 保留原有单元格底色、字体格式,只增加条件高亮标记
使用说明
- 打开表格,Alt+F11插入模块,粘贴代码
- 改好顶部的参数:目标区域、阈值、颜色
- 运行宏即可;每次更新数据,重新运行一次刷新标记
- 适合:台账差异检查、异常数据预警、重复记录排查、报表快速审数
vba
Sub 一键条件格式标色()
Dim ws As Worksheet
Dim rng As Range
'=====在这里改参数=====
Set ws = ActiveSheet '要处理的工作表
Set rng = ws.Range("A2:Z1000") '标色区域,按需修改
Const 阈值上限 As Double = 100
Const 阈值下限 As Double = 10
'======================
'先清除全部旧条件格式,防止规则堆积冲突
rng.FormatConditions.Delete
'大于阈值上限 标红色填充
With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlGreater, Formula1:="=" & 阈值上限)
.Interior.Color = RGB(255, 204, 204)
.Font.Color = RGB(153, 0, 0)
End With
'小于阈值下限 标黄色填充
With rng.FormatConditions.Add(Type:=xlCellValue, Operator:=xlLess, Formula1:="=" & 阈值下限)
.Interior.Color = RGB(255, 255, 204)
.Font.Color = RGB(153, 102, 0)
End With
'标记重复值 浅蓝色
With rng.FormatConditions.Add(Type:=xlDuplicateValues)
.Interior.Color = RGB(204, 255, 255)
End With
MsgBox "标色完成!已清理旧条件格式,异常值、重复值已标记", vbInformation
End Sub
Sub 清除全部条件格式()
Dim rng As Range
Set rng = ActiveSheet.UsedRange
rng.FormatConditions.Delete
MsgBox "条件格式全部清除", vbInformation
End Sub
拓展玩法
如果你要做两份表差异标色,可以搭配之前双表对比的逻辑:
循环遍历两个区域,数值不一样的单元格单独填充橙色,和上面这套标色代码搭配使用,一份报表同时做到:异常阈值预警 + 跨表差异标记 + 重复标记。















































































