第15章 管理条件格式规则
一个区域可以添加多个条件格式,而条件与条件之间有可能产生冲突,这就需要对各条件进行相应的管理。条件格式可以为工作带来无穷便利,但大量使用会使工作簿速度降低,这也迫使用户需要对已存在的条件进行适当增删。
● 实例114在已有条件格式区域增加条件
● 实例115删除条件格式
● 实例116修改工作表中的条件格式
● 实例117提升第三个条件优先级为1
实例114 在已有条件格式区域增加条件
【技巧说明】 在已有条件格式区域增加一个条件。
【案例介绍】 如图3.16所示之学生成绩表,A列区域已有一个条件格式,对成绩为“优”者以黄色底纹显示。现需增加一个条件:成绩为“差”者用红色底纹显示。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub新增一个条件格式() With Selection .FormatConditions.Add Type:=xlExpression, Formula1:="=OFFSET (A3,0,5)=""差""" .FormatConditions(.FormatConditions.Count).SetFirstPriority With .FormatConditions(1).Interior .PatternColorIndex=xlAutomatic .ColorIndex=3 .TintAndShade=0 End With End With End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 使用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,结果如图3.17所示。
图3.16 学生成绩表
图3.17 新增一个条件格式
提示
本实例参见光盘样本:..\第3部分\实例114.xlsm。
实例115 删除条件格式
【技巧说明】 删除区域已有的条件格式。
【案例介绍】 工作簿中不需要条件格式时需将其删除,可以删除部分单元格的条件,也可以删除当前表的所有条件。以实例114的数据为例,工作表的A3∶A11同时具有双重条件格式。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub删除条件格式() MsgBox "稍后删除当前选区的条件格式。", 64, "提示" Selection.FormatConditions.Delete MsgBox "稍后删除当前工作表的条件格式。", 64, "提示" Cells.FormatConditions.Delete End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中A3,使用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,弹出程序提示框提示“现在删除当前选区的条件格式”,确定后工作表中当前选区的条件格式已删除,如图3.18所示。
[6] 再次弹出提示框,提示“现在删除当前工作表的条件格式”,确定后工作表所有条件格式都已删除,结果如图3.19所示。
图3.18 已删除当前单元格的条件格式
图3.19 已删除当前表的条件格式
提示
本实例参见光盘样本:..\第3部分\实例115.xlsm。
【相关知识说明】
FormatConditions.Delete:删除条件格式。
实例116 修改工作表中的条件格式
【技巧说明】 修改工作表中第N个条件格式。
【案例介绍】 条件格式的颜色格式可以随意修改为其他任意颜色,也可以将颜色格式改为边框。本例以实例114的数据为例,修改任意条件下的颜色格式。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
[3] 在右边代码窗口输入以下代码:
Sub修改第N个条件格式() Dim i As Byte i=Application.InputBox("请输入要修改格式的条件序号:","序号","2",100,100,,,1) If i > Selection.FormatConditions.Count Or i < 1 Then Exit Sub Selection.FormatConditions(i).Interior.ColorIndex=5 End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中A3∶A11,使用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,程序弹出输入要修改格式的条件序号对话框,如图3.20所示。
[6] 输入2并单击“确定”按钮后,选区中第二条件格式的颜色格式由红色变成了蓝色,效果如图3.21所示。
图3.20 输入要修改格式的条件序号对话框
图3.21 更改条件格式的颜色格式
提示
本实例参见光盘样本:..\第3部分\实例116.xlsm。
【相关知识说明】
本实例中IF…Then语句用于排错,输入数据不在条件格式数目范围中时则程序出错。
实例117 提升第三个条件优先级为1
【技巧说明】 提升第三个条件优先级为1。
【案例介绍】 一个区域中可以同时存在多个条件,而各个条件之间有可能产生冲突。即一个单元格同时符合多个条件,但同类型的格式如背景色却只能显示一种。此时条件格式的优先级就显得尤为重要了。如图3.22所示数据,其条件格式有三个,如图3.23所示,其中单元格A8∶B8同时符合三个条件,它既高于平均值又处于前6个范围,而且单元格数值等于8,但因为值为8这个条件处于最上层,所以单元格的格式显示为黄色底纹。
本实例演示将第三层条件优先级提升为1,使A8∶B8背景色变为浅蓝色。
【案例实现】 参见以下步骤:
[1] 使用快捷键Alt+F11进入VBE(Visual Basic Editor)环境。
[2] 单击菜单【插入】\【模块】,打开模块代码窗口。
图3.22 区域中的多重条件格式
图3.23 条件格式规则管理器
[3] 在右边代码窗口输入以下代码:
Sub提升优先级() Range("a2:b10").FormatConditions(3).SetFirstPriority End Sub
[4] 关闭VBE窗口返回到工作表。
[5] 选中A2∶B10,使用快捷键Alt+F8调出运行宏窗口,然后单击“执行”按钮,区域A2:B10背景色相应变化,如图3.24所示。
图3.24 将第三级条件提升为第一级后的区域
提示
本实例参见光盘样本:..\第3部分\实例117.xlsm。