在一个范围内选择一组单元格

时间:2014-04-23 22:19:22

标签: excel vba

我有一个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

任何帮助表示赞赏。 谢谢, 格兰特

1 个答案:

答案 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