平均值计算是一个十分普通的一个函数,Excel工作表中的应用经常使用,如此就产生了一个情况,需要以平均值来对数据时行一个操作,如将大于平均值的值突出显示,或者将小于平均值的表格单元突出显示,VBA给出了一个简单的应用方法,下面通过一个示例来介绍一下,如何实现。
如下图所示,列出一些随机数据,根据随机数据求出平均值,然后把大于平均值的单元格以绿色背景显示,这样就很明显地检索出想要数据。
示例中应用到了一个对象AboveAverage
方法 | 属性 |
Delete | AboveBelow |
ModifyAppliesToRange | Aaaplication |
SetFirstPriority | AppliesTo |
SetLastPriority | Borders |
CalcFor | |
Creator | |
Font | |
Interior | |
NumberFormat | |
NumStdDev | |
Parent | |
Priority | |
PTCondition | |
ScopeType | |
StopIfTrue | |
Type |
可以使用 FormatConditions 集合的 Add 或 AddAboveAverage 方法创建上述平均格式规则。
如:Selection.FormatConditions.AddAboveAverage '创建格式规则
所有条件格式对象都包含在 FormatConditions 集合对象中,平均格式对象当然也包含在内。
代码
Sub SetAboveAverage()
' 创建数据
Range("A1").Value = "名称"
Range("B1").Value = "数值"
Range("A2").Value = "JM-1"
Range("A2").AutoFill Destination:=Range("A2:A20"), Type:=xlFillDefault
Range("B2:B20").FormulaArray = "=INT(RAND()*990)"
Range("B2:B20").Select
' 创建条件格式 设置符合格式的数值为绿色背景.
Selection.FormatConditions.AddAboveAverage
'创建格式规则
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
'将此条件格式规则的优先级值设置为“1”
Selection.FormatConditions(1).AboveBelow = xlAboveAverage
'指定条件格式规则查找的单元格值是否高于或低于区域平均值或标准偏差
With Selection.FormatConditions(1).Font
.Color = -16752384
.TintAndShade = 0
End With
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 13561456
.TintAndShade = 0
End With
MsgBox "添加了一个平均格式条件,可以按 F9 查看工作表变化情况。", vbInformation
End Sub
如果要设置查询条件可设置AboveBelow属性值
Selection.FormatConditions(1).AboveBelow = xlAboveAverage
对照如下枚举类型以及值进行设置:
XLABOVEBELOW 枚举 (EXCEL) | ||
名称 | 值 | 说明 |
xlAboveAverage | 0 | 高于平均值 |
xlAboveStdDev | 4 | 高于标准偏差 |
xlBelowAverage | 1 | 低于平均值 |
xlBelowStdDev | 5 | 低于标准偏差 |
xlEqualAboveAverage | 2 | 等于高于平均值 |
xlEqualBelowAverage | 3 | 等于平均值以下 |
平均格式对象如果应用的好,可以大大地增加数据处理和应用的效率,是Excel工作表快捷办公的一个利器。相信你一定可以做到。
欢迎关注、收藏
--END--