我有一列整数从上到下按升序排序。每个整数在列中出现多次,但没有整数出现的次数相同。
向下移动列,当整数发生变化时,我想插入一行,显示新行上方相同整数的总和。
当我向下移动列时,我正在使用计数器来计算相同的整数(我的测试显示计数器正在工作), 但是当我将计数器插入R1C1格式(从下面的第三行开始)时,它返回零。因此,结果的总和是将当前行与其上方的行(圆形引用)相加,而不是包含与其上面的行相似的整数的顶行。
我的代码:
{{1}}
答案 0 :(得分:0)
这是一个解决方案(有条件的"运行总和"),您可以使用/修改与您的案例相关的解决方案。假设为了简单起见,所有10个值都在Excel工作表A列中,那么"运行计数"将出现在B栏和"运行总和"在C栏中:
1 3 3
1 2 2
4 3 12
1 1 1
2 2 4
4 2 8
5 2 10
4 1 4
2 1 2
5 1 5
以下是执行此任务的简单VBA代码段:
Private Sub CommandButton1_Click()
Dim Counter As Integer
Dim lastRow As Integer
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
Counter = 0
x = Cells(i, 1).Value
For j = i To lastRow
If x = Cells(j, 1).Value Then
Counter = Counter + 1
Cells(i, 2).Value = Counter
Cells(i, 3).Value = Counter * x
End If
Next j
Next i
End Sub
此外,任何数量条目的通用解决方案如下所示:
Private Sub CommandButton1_Click()
Dim Counter As Integer
Dim lastRow As Integer
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
Counter = 0
x = Cells(i, 1).Value
For j = i To lastRow
If x = Cells(j, 1).Value Then
Counter = Counter + 1
Cells(i, 2).Value = Counter
Cells(i, 3).Value = Counter * x
End If
Next j
Next i
End Sub
希望这可能会有所帮助。最好的问候,
答案 1 :(得分:0)
我发现我需要将名为'counter'的变量传递给名为'subTotal'的子程序。一旦我解决了这个问题,一切正常。