Excel 2007基础教程:在VBA中使用条件格式的示例

发布: 2009-2-15 13:59  作者: 网络转载  查看: 970次 共有0条评论

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

  希望这些对您有所帮助。

相关阅读
大家对 Excel 2007基础教程:在VBA中使用条件格式的示例 的评论
最新PPT教程
最新评论
PPT问答