2017-04-16 96 views
0

我想写一个VBA代码,只要值为“1”就对行的值进行求和,然后总计行的值,只要该值为“ - ” 1“,然后循环直到该行为空。VBA:根据重复条件分别合计行值

见所附截屏

enter image description here

请注意,标准不重复5次,而是经常变化。

+1

你尝试过这么远吗?分享你的代码尝试。 –

+0

请阅读:https://stackoverflow.com/help/how-to-ask –

+0

嗨,嗨,我真的还没有试图拿出代码呢。我浏览过去,看看过去有没有相关的帖子可以适应我的需求。 – jason

回答

0

我写了下面的代码,这似乎工作。它期望您选择要加总的值的列(最后不要有空格),并根据右边的列将相关总计添加到第三列。

Sub MyProc() 

Dim inputRange As Range 
Set inputRange = Selection 

Dim Cell As Range 
Dim RunningTotal As Integer 
Dim VerticalOffset As Integer 

Dim PreviousCellFlag As Integer 
PreviousCellFlag = 0 

For Each Cell In inputRange 

    If Cell.Offset(0, 1) <> PreviousCellFlag Then 

     PreviousCellFlag = Cell.Offset(0, 1) 
     RunningTotal = 0 
     VerticalOffset = 0 

     While Cell.Offset(0, 1) = Cell.Offset(VerticalOffset, 1) 
      RunningTotal = RunningTotal + Cell.Offset(VerticalOffset, 0).Value 
      VerticalOffset = VerticalOffset + 1 
     Wend 

     Cell.Offset(0, 2) = RunningTotal 
    Else 
     Cell.Offset(0, 2) = "" 
    End If 

Next Cell 

End Sub 
2

如果你的数据在A2开始,用这个公式在C2然后复制/粘贴在C列:

=IF(B2=B1,"",SUMPRODUCT(OFFSET(A2,,,MATCH(TRUE,B3:B$1000<>B2,0))))