2007基础:在中使用条件格式的示例
自从我收到一些关于“如何在VBA中使用新的条件格式”的询问,我就想提供给大家一些简单的示例。在我们Excel开发团队中有一条法则:当我们增加任何新功能时,我们必须确定它们在被程序调用时能和在用户界面中工作的一样好。Excel 12的对象模型支持所有出现在用户界面中的条件格式功能,包括增加、编辑和s删除规则,或者更改规则的优先级。
在旧版本Excel中写过与条件格式相关的VBA代码的人会知道,条件格式集不能使用Range对象。让我通过运行一些简单示例来展示如何使用条件格式集中的新功能。
增加一个规则:
Excel 12中,新的条件格式的规则(Data bars, Color Scales, Icon Sets, Top n等待),可以在条件格式集中使用Add <对象名>的方法来创建。比如,创建一个data bar:
Range("A1:A5").FormatConditions.AddDatabar
编辑现有规则:
编辑规则是通过定位条件格式集的索引号并修改其属性。比如,更改data bar的颜色:
Range("A1:A5").FormatConditions(1).BarColor.ColorIndex = 3
在这里,数字1表示区域中的第一个规则。
编辑规则优先级:
在Excel 12里,规则优先级这个概念表示支持在一个区域建立多重条件,优先级决定规则执行的次序。在对象模型里,我们同样可以使用条件格式对象的优先级属性。此属性在工作表级被追踪,比如,检验某条规则的优先级:
Range("A1:A5").FormatConditions(1).Priority
将某规则降至最低优先级:
Range("A1:A5").FormatConditions(1).SetLastPriority
分配一项指定的优先级:
Range("A1:A5").FormatConditions(1).Priority = 3
注意,如果你只有3条规则,那么设置优先级为3和设置优先级为最低的效果是一样的。
删除规则:
你可以根据索引号并使用Delete方法来删除一个指定的规则:
Range("A1:A5").FormatConditions(1).Delete
也可以将Delete方法作用于条件格式集来删除指定区域中的所有规则:
Range("A1:A5").FormatConditions.Delete
下面是另一个示例。假设你想用VBA来把单元格区域A1-A10中数值最高的5%突现并填充为红色,以下是相关的代码:
Sub Top5Percent()
'Adding Top10 rule to the range
Range("A1:A10").FormatConditions.AddTop10
'Assign the rank of the condition to 5
Range("A1:A10").FormatConditions(1).Rank = 5
‘Set the Percent property true. It is false by default.
Range("A1:A10").FormatConditions(1).Percent = True
'Set the color to a red fill
Range("A1:A10").FormatConditions(1).Interior.ColorIndex = 3
End Sub
希望这些对您有所帮助。