平均 VBA 函数

Average VBA function

我正在

Run-time error '424': Object required"

每次我尝试这个,我都不明白为什么!

Dim CCAnual(1 To 200) As Currency
For i = 1 To 188
    Set CCAnual(i) = Applications.WorksheetFunction.Average(Worksheets(3).Range(Cells(i + 2, 5), Cells(i + 14, 5)))
Next i
For i = 189 To 200
    Set CCAnual(i) = Applications.WorksheetFunction.Average(Worksheets(3).Range(Cells(i, 5), Cells(200, 5)))
Next i

我做错了什么?

我试过按原样定义工作表,使用 ActiveWorksheet 和什么都不定义。

第一期来了CCAnual(i) = Applications.WorksheetFunction

使用这个:
CCAnual(i) = WorksheetFunction.Average(Range(Cells(i + 2, 5), Cells(i + 14, 5)))

或者这个:
CCAnual(i) = Application.Average(Range(Cells(i + 2, 5), Cells(i + 14, 5)))

或者这个:
CCAnual(i) = Evaluate("=Average(" & Range(Cells(i + 2, 5), Cells(i + 14, 5)).Address & ")")


您还应该记住,您可能会遇到 第二个问题 .Average() 不适用于空单元格,因此至少有一个单元格应为数值


所以最后你的代码应该是这样的:

 Sub test()
     Dim CCAnual(1 To 200) As Currency
     For i = 1 To 188
         If WorksheetFunction.CountA(Range(Cells(i + 2, 5), Cells(i + 14, 5))) = 0 Then 
             Exit For
         Else
             CCAnual(i) = Application.Average(Range(Cells(i + 2, 5), Cells(i + 14, 5)))
         End if
     Next i
     ''''''''''
 End Sub