将两列相加(每个单元格分开)

时间:2017-07-24 09:56:36

标签: excel-vba vba excel

我正在使用Excel,我刚开始在Excel中使用vba。

我需要将第I列的值,第1列中的单元格I6:I26添加到第D列,第2列中的单元格D1:D21。

因此,如果I6 = 4且D1 = 6,并按下ADD按钮,则D6将等于10.其余单元格也是如此。

我不希望它的单元格I6替换D6的值,我希望它添加到它。

这是我到目前为止的代码;

Dim r1 as Range, v as variant
Set r1 = Sheets("Sheet2"). Range("D1")
V = Application.WorksheetFunction.Sum(Sheet1.Range("I6"), Sheet2.Range("D1"))
R1 = v

我必须这样做20次..无论如何要简化这个?

2 个答案:

答案 0 :(得分:1)

您可以Evaluate数组之和:

[Sheet2!D1:D21] = [Sheet1!I6:I26 + Sheet2!D1:D21]

答案 1 :(得分:0)

我发现你想要结果的地方有点令人困惑。 Sheet1中的数据I6:I26Sheet2中的数据包含D1:D21中的数据 您希望第一个结果进入单元格D6 ...在哪张表格上?在Sheet2上,它会在Sheet1中开始覆盖旧数据?其他一些表?

此代码将公式放在工作表1的单元格D6中,然后将其向下拖动到单元格D26 我给了两种配方。 A1表示法和R1C1表示法。

R1C1表示法的细分:
  RC9表示从第9行的第9行获取数据 - 在单元格D6中,这将是单元格I6   R[-5]C4表示从第4列中的5行中获取数据 - 在单元格D6中,这将是D1。

Sub Test()

    With Sheet1
        .Range("D6").Formula = "=SUM($I6,Sheet2!$D1)"

        'You could also use R1C1 notation (which is easier if you're looping through rows/columns).
        '.Range("D6").FormulaR1C1 = "=SUM(RC9,Sheet2!R[-5]C4)"

        .Range("D6:D26").FillDown
    End With

End Sub