我正在使用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次..无论如何要简化这个?
答案 0 :(得分:1)
您可以Evaluate
数组之和:
[Sheet2!D1:D21] = [Sheet1!I6:I26 + Sheet2!D1:D21]
答案 1 :(得分:0)
我发现你想要结果的地方有点令人困惑。 Sheet1
中的数据I6:I26
和Sheet2
中的数据包含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