循环通过现有单元格查找Sum Excel

时间:2016-05-22 03:42:03

标签: excel vba excel-vba

我正在开发一个excel VBA项目,我正在尝试创建一个脚本,它将遍历H列中具有货币值的所有单元格,并将添加每个后续值以显示单元格M1中的总计。

这是我到目前为止所做的:

Sub Loop_Cell_For_Sum()
  'Selects Cell H2 as First Line in Data
   Range("H2").Select
  'A Do Loop set to stop when an empty cell is reached
   Do Until IsEmpty(ActiveCell)
  'Creates a Running Total in the M1 Cell
   Range("M1").Value = Range("M1").Value +ActiveCell.Value
  'Steps Down 1 Row
   ActiveCell.Offset(1,0).Select
   Loop
End Sub

我想知道我在哪里出错?也许它与我在excel中放置代码的位置有关?我希望代码在后台自动运行。我已在工作表中作为对象放置(通过右键单击工作表,单击视图代码,然后插入上面的代码)。

非常感谢任何和所有帮助!!

非常感谢!

2 个答案:

答案 0 :(得分:0)

Sub addColH()

Dim rng As Range
Dim cell As Range
Dim lr As Long
Dim counter As Double

lr = Cells(Rows.Count, "H").End(xlUp).Row
Set rng = Range("H2:H" & lr)
counter = 0

For Each cell In rng
  counter = counter + cell.Value
Next

Range("M1").Value = counter

End Sub

答案 1 :(得分:0)

@AshtonMorgan为我上面的问题提供了一个解决方案。但是,正如@ScottCraner指出的那样,只要有变化,解决方案就不会自动更新。

我已经稍微修改了这个解决方案,将其放入Worksheet_Change事件中,以便任何可能有相同问题的人查看此帖子。

对于此解决方案,所有学分都归@AshtonMorgan和@ScottCraner所有:

{ 0 : { 0 : get_dict(0,0)
      { 1 : get dict(0,1)
        .....
       }

{1:    { 0: get_dict(1,0)
        ...
       }