2014-04-23 80 views
0

我有一個For Next Loop,它將每個單元格放在一個範圍內,選擇下面的單元格10,對這十個單元格執行計算並將結果放入下一列。例如,將採用單元格A1,總和A1-A10並將結果放入B1中。然後循環到A2,將A2-A11相加並將結果放入B2中。下面的代碼(只有摘錄)工作正常。選擇一組範圍內的單元格

我想總結一下而不是下降。選擇單元格A20,總結A20-A10,並將結果放入B20。一直無法做到。在下面的代碼中,E1的值將是10,並且是從範圍中的每個單元格中選擇的單元格的數量。

For Each Rng In Range("LogRd1") 
    Rng.Select 
    Selection.Resize((Range("E1").Value), 1).Select 
    Rng.Offset(, 1).Formula = ((Application.WorksheetFunction.Sum(Selection))/((Range   ("E1").Value + 0.0001) - (Application.WorksheetFunction.Sum(Selection)))) 

Next Rng 

任何幫助表示讚賞。 謝謝, 格蘭特

回答

0

EDITED AGAIN:多了幾分穩健

Dim BLOCK_SIZE as Long 
Dim Rng As Range, r as Range, s As Variant 

BLOCK_SIZE = Range("E1").Value 

For Each Rng In Range("LogRd1") 
If Rng.Row >= BLOCK_SIZE Then 
    Set r = Rng.Offset(-(BLOCK_SIZE-1), 0).Resize(BLOCK_SIZE, 1) 
    s = Application.Sum(r) 
    If Not IsError(s) Then 
     Rng.Offset(0, 1).Value = s/((BLOCK_SIZE + 0.0001) - s) 
    Else 
     Rng.Offset(0, 1).Value = "Sum Error!" 
    End If 
End If 'can offset to at least BLOCK_SIZE above this cell 
Next Rng 
+0

感謝蒂姆,我會盡量與工作,但我需要保留E1.Value而不僅僅是10用戶在E1中輸入可以是任何整數的值。當我嘗試-E1時,它不起作用。同樣,Resize(11,1)必須以E1值表示。 – user3566493

+0

Tim,Dim s As ????? – user3566493

+0

看到我的編輯... –

相關問題