2017-06-29 96 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 所有細胞被平均是空的,而功能失效。