VBA运行总和

时间:2016-10-25 04:22:29

标签: excel vba excel-vba

我们说我有2列(下表包括结果)

Product ID    Price    Average
1             4        5
1             4        5
1             7        5
2             3        3
2             3        3
3             9        9

我希望能够编写一个VBA代码来遍历产品ID的行,并创建第三列,其中包含平均价格。

我想For语句可以工作,但是如何定义临时变量来存储每个ID?

谢谢!

1 个答案:

答案 0 :(得分:1)

正如Vasily和L.Dutch所说,AVERAGEIF()功能就是你所需要的。如果要将其循环遍历所有单元格,可以使用Do While循环,如下所示:

Sub avg()
Dim i As Integer
i = 2
Do While Range("A" & i).Value <> ""
    Range("C" & i).FormulaR1C1 = "=AVERAGEIF(C1,RC1,C2)"
    i = i + 1
Loop
End Sub