软件环境:
EXCEL2019
思路:
把创建条件格式的过程录制成为宏,将宏代码放到VBA中。当某个单元格内容变化时删除所有条件格式并重新创建所需要的条件格式,从而让条件格式的应用范围始终是全局范围。缺点是每次更改单元格内容都要重新删除创建一次导致卡顿。
具体操作:
界面上方视图里边,录制宏。
这里我简单设置了一个条件格式,无空值时单元格填充为蓝色。
这个代码就是我们刚才创建条件格式的宏代码。
右击工作表标签,点击查看代码。
粘贴刚才录制的宏代码,并且根据实际情况进行修改。
Private Sub Worksheet_Change(ByVal Target As Range)
Cells.FormatConditions.Delete
Cells.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=LEN(TRIM(A1))>0"
Cells.FormatConditions(Cells.FormatConditions.Count).SetFirstPriority
With Cells.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0
End With
Cells.FormatConditions(1).StopIfTrue = False
End Sub
效果演示:
单元格非空时填充为蓝色。合并单元格、取消合并、剪切这些操作会改变条件格式的应用范围,但是每次单元格内容改变后,VBA代码都会重新建立条件格式,所以间接地实现了应用范围固定不变。