Skip to content

Excel VBA Conditionally Format Above/Below Average Using VBA Macro

    To conditionally formatting above or below average values in a range use the AddAboveAverage method of the FormatConditions object. With the AboveBelow property specify what to format – constants shown in the table below.

    NameValueDescription
    XlAboveAverage0Above average.
    XlAboveStdDev4Above standard deviation.
    XlBelowAverage1Below average.
    XlBelowStdDev5Below standard deviation.
    XlEqualAboveAverage2Equal above average.
    XlEqualBelowAverage3Equal below average.
    Sub abovebelowaverage()
    Dim rg As Range
    Dim av As AboveAverage
    Set rg = Range("Q4", Range("Q4").End(xlDown))
    Set av = rg.FormatConditions.AddAboveAverage
    With av
    .AboveBelow = xlEqualAboveAverage
    .Interior.Color = vbYellow
    End With
    End Sub

    The code above relates to the data shown below.