VBA代码以编程方式添加单元格

时间:2014-03-29 01:16:19

标签: vba excel-vba excel

嗨,谢谢,也很抱歉提出这样一个新手问题 如何创建一个VBA代码,用于添加A1 + B1 = C1,然后是下一行,即A2 + B2 = C2,依此类推。 请帮我。我知道如何创建公式,但这个我不知道。 任何帮助将不胜感激。 谢谢。 只需一个简单的宏即可。

这里已经出现但无济于事。

Worksheets("Total").Activate
Set MyRange = Range("H3:H100")
For Each mycell in MyRange
H3 = A3+B3+C3
(so if the next loop it will look like H4 = A4+B4+C4 and so on)
Next mycell
End sub

1 个答案:

答案 0 :(得分:1)

这里你不需要任何循环。有更有效的方式:

With Worksheets("Total").Range("H3:H100")
    .Formula = "=A3+B3+C3" ' or "=SUM(A3:C3)"
    .Value = .Value
End With

<强>解释

1).Formula = "=A3+B3+C3"在每个单元格中写入公式。 Excel会自动为每行调整此公式:

    H3公式中的
  • 将为=A3+B3+C3
  • H4公式中的
  • 将为=A4+B4+C4
  • .....................
  • H100公式中的
  • 将为=A100+B100+C100

您也可以使用此公式:.Formula = "=SUM(A3:C3)" - 结果将是相同的。

2).Value = .Value使用结果值重写公式。如果要保留公式,可以删除此行。


如果您仍然感兴趣如何使用循环执行相同的操作,请查看以下代码:

Dim MyRange As Range, c As Range

With Worksheets("Total")
    Set MyRange = .Range("H3:H100")
    For Each c In MyRange
        c.Value = .Range("A" & c.Row) + .Range("B" & c.Row) + .Range("C" & c.Row)
    Next mycell
End With
上面的

代码循环遍历范围H3:H100中的每个单元格,并计算ABC列中相应值的总和。
你可以在这里看到我的表现:.Range("A" & c.Row)。这里c.Row返回&#34;当前&#34;的行号。范围H3:H100"A" & c.Row中的单元格会在A3引用cH3时向A4提供c - 当H4引用{时{1}}等等。


您可能还想阅读此内容:How to avoid using Select/Active statements