通过 VBA (Excel) 计算原始数据中每 6 列的平均值

问题描述 投票:0回答:1

现在我正在用VBA编写宏,我几乎完成了它,但现在我陷入了一个问题。我不明白应该如何计算由表格的每 6 列组成的范围的平均值。 在 Excel 中,此公式类似于“=AVG(I3, O3, U3...HE3)”

我尝试使用宏记录器,但它只是通过重复整个公式和每个单元格地址来硬编码平均值。但是我的表每天都会更新,每天我都会在表的末尾添加 6 个新列,最后一列左边,最后一列是存储原始数据每 6 列平均值的列。 我尝试通过循环来完成此操作,我认为我非常接近解决这个问题,但我不明白如何使用公式将循环值添加到特定单元格。

这是我的代码:

Dim i As Integer
i = 8
For i = 8 To rng.Columns.Count Step 6
rng.Cells(3, rng.Columns.Count) = Application.WorksheetFunction.Average(rng.Cells(3,i))
Next i

rng - 是存储我的表的范围变量。

通过上面的代码,我设法循环遍历需要计算平均值的所有单元格,但我不明白如何将这些单元格的值获取到计算平均值的特定单元格。 你能帮我吗?

excel vba excel-2007
1个回答
0
投票

您可以将这些值相加,然后除以 (columns-8)/6 的数量。

Dim i As Integer
Dim sum as long
i = 8
sum = 0
For i = 8 To rng.Columns.Count Step 6
    sum = sum + rng.Cells(3,i).value
Next i

rng.Cells(3, rng.Columns.Count +1).value = sum/((rng.columns.count-8)/6) ' I assumed you want the value in rng.columns.count +1, since but change it if you want.
© www.soinside.com 2019 - 2024. All rights reserved.