Excel VBA Loop to Sum两个连续的单元格

时间:2016-02-23 19:55:22

标签: excel vba excel-vba

我是新手在Excel中使用VBA并且在尝试创建循环以将两个连续数字相加并将其输出到合并单元格时遇到困难。数据如下:

Number    -   Sum
  1       -   8 
  7       -    
  1       -   2 
  1       -    

所以我想循环通过第1列中的数字并将前2个数字(1和7,即单元格A1和A2)相加,并将该值返回到它右边的合并单元格,这将是B1。

以下是我到目前为止正确计算单元格A1和A2并将值8放入单元格B1但是之后根本不起作用的内容。我之前有一个循环可以在单独的行中计算2个值,但是在这种情况下我可以知道如何做到这一点。

Sub Loop_Sum()
Set rng = Range("A1:A6")
For Each cell In rng
Cells(cell, 2) = Cells(cell, 1) + Cells(2, cell)
Next cell
End Sub

感谢任何帮助/指针。

感谢。

2 个答案:

答案 0 :(得分:2)

您需要更改为递增的For .. Next并将增量步长提前2。

Sub Loop_Sum()
    dim i as long, rng as range    
    Set rng = Range("A1:A6")
    For i= 1 to rng.cells.count step 2
        rng(i).offset(0, 1) = rng(i) + rng(i + 1)
    Next cell
End Sub

答案 1 :(得分:1)

您想使用偏移功能:

Sub Loop_Sum()
Set rng = Range("A1:A6")
For Each cell In rng
    If cell.Row Mod 2 = 0 Then 'Change 0 to 1 if it ends up on the worng row.
        cell.Offset(, 2) = cell + cell.Offset(1)
    End If
Next cell
End Sub

如果你想要一个公式,那么把它放在C2:

=If(mod(row(),2)=0,A2+A3,"")

然后复制。