2017-06-29 150 views
0

我有这个循环在一个工作表中取4个单元格的组,并将它们平均到另一个工作表中。当一行读取z = z + 3时,它会运行,但如果将其更改为z = z + 4,则不会(运行时错误1004无法获取WorksheetFunction类的Average属性)。为什么是这样?VBA循环错误

Dim summary As Worksheet 
Set summary = ThisWorkbook.Sheets("Sheet3") 

Dim cost As Worksheet 
Set cost = ThisWorkbook.Sheets("Sheet4") 

Dim y As Integer 
Dim z As Integer 
z = 2 

For y = 2 To 17 

    cost.Cells(y, 3) = Round(Application.WorksheetFunction.Average(Range(summary.Cells(4, z), summary.Cells(4, (z + 3)))), 0) 
    z = z + 4 
Next y 
+0

你有s数值那列吗?也许你有一个字符串 –

+0

所有的值都是整数 – Laura

+0

你有价值的所有'$ BQ $ 4'? – CLR

回答

1

如果您用z=z+3你的常规,那么最终(其中y = 17)面积平均为$AX$4:$BA$4

但是,如果与z=z+4,所有这些额外的小区,意味着最终的面积平均为$BN$4:$BQ$4

正如你在你的评论已经指出,您的数据只延伸到$AX$4,一旦y达到14 所有细胞被平均是空的,而功能失效。