Excel VBA AVERAGE(可变范围)

我试图使用一个Excel公式,平均过去12个月的值,并将其与当前月份值(在这种情况下, RC[-2]-RC[-1]和30%的方差)进行比较。

问题是行更改,它嵌套在一个循环中。

下面的代码:

 Dim i As Long Dim o As Double Dim p As Double 'some code here For i = 1 To n Selection.Value = "=RC[-2]-RC[-1]" o = ActiveCell.Value p = Application.Formula.Average(Range("RC[-13]", "RC[-2]")) If (o >= (p + p * 3 / 10)) Or (o < (p + p * 3 / 10)) Then ActiveCell.Font.Color = vbRed End If ActiveCell.Offset(1, 0).Select Next i 

任何想法如何定义平均没有一个单独的平均function?

Selection.Value = "=RC[-2]-RC[-1]"更改为Selection.Value = Offset(0, -2).Value - Offset(0, -1).Value

然后,声明一些范围variables: Dim rng As Range ,然后将其设置为范围与过去12个月的数据并计算平均值:

 Set rng = Range(Selection.Offset(0, -13), Selection.Offset(0, -2)) p = Application.Average(rng) 

ActiveCell.Offset(0, 1).Value = "=AVERAGE(RC[-13]:RC[-2])"find解决方法。

谢谢你的时间家伙!