Excel / VBA – 遍历范围

我有以下代码:

TotalCount = Application.Sum(Worksheets("Data").Range("B14:G14")) Sheets("Data").Range("H14") = TotalCount TotalCount = Application.Sum(Worksheets("Data").Range("B13:G13")) Sheets("Data").Range("H13") = TotalCount TotalCount = Application.Sum(Worksheets("Data").Range("B12:G12")) Sheets("Data").Range("H12") = TotalCount TotalCount = Application.Sum(Worksheets("Data").Range("B11:G11")) Sheets("Data").Range("H11") = TotalCount 

正如你所看到的…这不是很有效。 问题是,我无法find一个循环的解决scheme,使其更好。 当我尝试创build一个循环,我要么得到的结果,我不期望或它不工作。 我正处于需要帮助的地步…帮助! 并提前谢谢你。

 For i = 1 to 4 For t = 1 to 6 TotalCount = Worksheets("Data").Cells(i+10,t+1).Value + TotalCount Next t Worksheets("Data").Cells(i+10,11).Value = TotalCount TotalCount = 0 'reset TotalCount Next i 

只要你不介意朝相反的方向发展,那就应该达到你要找的东西。

这可以用H单元中的公式代替。

或者VBA:

 Dim i As Long Dim rngA As Range: Set rngA = Worksheets("Data").Range("B14:G14") Dim rngB As Range: Set rngB = Worksheets("Data").Range("H14") For i = 0 To 3 rngB.Offset(-i, 0).Value = Application.Sum(rngA.Offset(-i, 0)) Next 

你也可以:

 With Sheets("Data") .Range("H14") = Application.Sum(.Range("B14:G14")) .... End With 

或者,只是为了好玩:

 Dim i as integer for i = 14 to 11 step -1 Sheets("Data").Range("H" & i).Formula = "=SUM(B" & i & ":G" & i) next 

我们可以使用一个循环

 Sub UseLoop() With Sheets("Data") For i = 11 To 14 TotalCount = Application.Sum(.Range("B" & i & ":G" & i)) .Range("H" & i) = TotalCount Next i End With End Sub 

你不需要一个循环,只是一点魔力:)

 Worksheets("Data").Range("H11:H14").Formula = "=B:B+C:C+D:D+E:E+F:F+G:G" 

如果你不喜欢公式添加

 Range("H11:H14").Value2 = Range("H11:H14").Value2 
 Range("H11:H14").Formula = "=SUM(B11:G11)"