2015-11-07 82 views
0

我越来越平均VBA函数

运行时错误 '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

第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 
+0

这工作!谢谢! – Migarisa