Excel VBA范例大全
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第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。