【问题标题】:Average in VBA in ExcelExcel 中的 VBA 平均值
【发布时间】:2015-04-22 14:38:59
【问题描述】:

我是 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

【问题讨论】:

    标签: vba excel average


    【解决方案1】:

    仔细查看您要在这段代码中执行的操作:

    l = Cells(i, 12).Value
    m = Cells(k, 12).Value
    
    Cells(j, 20).Value = [Average (l : m)]
    

    您正在为 lm 中的每一个分配一个“长”值,然后在 average 函数中调用它们,就像它们是对单元格的引用一样。

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

    类似:

    Dim myRange as Range
    
    'Loop code here
    Set myRange = Range("L" & i & ":L" & k)
    Cells(j, 20).Value = Application.WorksheetFunction.Average(myRange)
    

    【讨论】:

    • 最后一行应该是:Cells(j, 20).Value = Application.WorkSheetFunction.Average(myRange)
    • 是的,在答案中进行了编辑。感谢收看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多