这里你不需要任何循环。有更有效的方式:
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
并计算相应值的总和从列A
,B
,C
。
你可以看到我在这里如何做:.Range("A" & c.Row)
。在这里,在范围H3:H100
“当前”单元和"A" & c.Row
的c.Row
返回行号给你A3
时c
referce到H3
,A4
- 当c
referce到H4
等。
您可能还需要阅读此:How to avoid using Select/Active statements
好心记住我的[答案是正确的(http://meta.stackexchange.com/questions/5234/how-does-accepting-an- answer-work/5235#5235)如果它可以帮助你:) –