如何在VBA中对变量范围内的值求和?
我有一张如下所示的表格 在C列中,如果A列的值具有相同的索引(B列),我想对A列的值求和。如果所有行都有相同的索引(如第D列所示),我想为它们设置总和结果 不幸的是,具有相同索引的值的范围是可变的,并且我的宏只能使用两个索引求和值。有人能帮忙吗?谢谢如何在VBA中对变量范围内的值求和?,vba,excel,Vba,Excel,我有一张如下所示的表格 在C列中,如果A列的值具有相同的索引(B列),我想对A列的值求和。如果所有行都有相同的索引(如第D列所示),我想为它们设置总和结果 不幸的是,具有相同索引的值的范围是可变的,并且我的宏只能使用两个索引求和值。有人能帮忙吗?谢谢 Sub example() Dim ws As Worksheet Dim LastRow As Long Dim n, i As Integer Set ws = ActiveWorkbook.Sheets("Sheet2") ws.Selec
Sub example()
Dim ws As Worksheet
Dim LastRow As Long
Dim n, i As Integer
Set ws = ActiveWorkbook.Sheets("Sheet2")
ws.Select
LastRow = Sheets("Sheet2").Range("A" & Sheets("Sheet2").Rows.Count).End(xlUp).Row
Range("C3:C" & LastRow).Select
Selection.ClearContents
For i = 3 To LastRow
If Range("B" & i + 1) - Range("B" & i) = 0 Then
Range("C" & i) = Range("A" & i + 1) + Range("A" & i)
Else
Range("C" & i) = Range("C" & i - 1)
End If
Next i
End Sub
这里有一个方法:
Sub example()
Dim ws As Worksheet
Dim LastRow As Long
Set ws = ActiveWorkbook.Sheets("Sheet2")
LastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
With ws.Range("C3:C" & LastRow)
.ClearContents
.Value = ws.Evaluate("INDEX(SUMIF(B3:B" & LastRow & ",B3:B" & LastRow & ",A3:A" & LastRow & "),)")
End With
End Sub
为什么不使用SUMIF电子表格函数呢?您的意思是:“=SUMIFS(A:A;B:B;B3)”?我想在宏中集成它,因为它只是较长代码的一部分谢谢!如果我需要添加一些其他条件(以获得kind=SUMIFS),如何将其集成到这段代码中?它将使用SUMIFS,然后为每个范围/条件对使用类似的范围语法。