Excel中VBA的平均值

Har*_*hra 2 excel vba average

我是 Excel 中 VBA 的新手。我有一个包含 11 000 个数字的数据范围。我想计算前 60 次的平均值,然后是接下来的 60 次直到结束。我做了一些编程,但它不起作用。有人可以帮我吗?

Sub Hourlyaverage()
    Dim i As Long, j As Long, k As Long, l  As Long, m As Long
    
    Sheets("DUT1_Test51_excel").Select
    
    i = 3
    j = 3
    k = 63
        
    Do While Cells(i, 12).Value <> ""
        
        l = Cells(i, 12).Value
        m = Cells(k, 12).Value
        
        Cells(j, 20).Value = [Average (l : m)]
        i = i + 60
        j = j + 1
        k = k + 60
    Loop
    
End Sub
Run Code Online (Sandbox Code Playgroud)

314*_*ils 5

仔细查看您在此代码中尝试执行的操作:

l = Cells(i, 12).Value
m = Cells(k, 12).Value

Cells(j, 20).Value = [Average (l : m)]
Run Code Online (Sandbox Code Playgroud)

你分配一个“长”值给每个lm,然后调用它们的平均函数,好像他们是一个单元格引用。

我建议您添加一个范围变量,指定要平均的数据的位置并将其用作函数参数。

就像是:

Dim myRange as Range

'Loop code here
Set myRange = Range("L" & i & ":L" & k)
Cells(j, 20).Value = Application.Average(myRange)
Run Code Online (Sandbox Code Playgroud)