平均VBA功能

时间:2015-11-07 13:00:26

标签: arrays vba runtime-error

我正在

  

运行时错误' 424':需要对象"

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

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定义工作表,而没有任何内容。

1 个答案:

答案 0 :(得分:1)

第1期在这里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