VBA for循环错误

时间:2017-06-29 10:35:22

标签: vba excel-vba excel

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

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

1 个答案:

答案 0 :(得分:1)

如果您使用z=z+3运行例行程序,则最终(y = 17)区域的平均值为$AX$4:$BA$4

但是,如果使用z=z+4,则所有这些额外的单元格意味着平均的最终区域为$BN$4:$BQ$4

正如您在评论中所述,您的数据仅延伸至$AX$4,一旦y达到14 ,所有的平均细胞均为空,且功能为空失败。