我有一个For Next循环,它将每个单元格放在一个范围内,选择它下面的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 :(得分:0)
再次编辑:更强大
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