2014-03-29 75 views
0

嗨,非常感谢以及抱歉问这样一个新手问题 如何创建用于添加A1 + B1 = C1的VBA代码,然后是A2 + B2 = C2的下一行,等等等等。 请帮帮我。我知道如何创建公式,但这个我不知道。 任何帮助将不胜感激。 谢谢。 只是一个简单的宏是我所有。VBA代码以编程方式添加单元格

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

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 
+0

好心记住我的[答案是正确的(http://meta.stackexchange.com/questions/5234/how-does-accepting-an- answer-work/5235#5235)如果它可以帮助你:) –

回答

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) line .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并计算相应值的总和从列AB,C
你可以看到我在这里如何做:.Range("A" & c.Row)。在这里,在范围H3:H100“当前”单元和"A" & c.Rowc.Row返回行号给你A3c referce到H3A4 - 当c referce到H4等。


您可能还需要阅读此:How to avoid using Select/Active statements

相关问题