vba多条件求和代码

以下是VBA多条件求和代码的示例:

Sub MultiCriteriaSum()

Dim i As Long
Dim Sum As Double

Sum = 0

For i = 2 To Range(“A” & Rows.Count).End(xlUp).Row
If Range(“A” & i).Value = “Criteria1” And Range(“B” & i).Value = “Criteria2” Then
Sum = Sum + Range(“C” & i).Value
End If
Next i

Range(“E2”).Value = Sum

End Sub

在此示例中,我们假设要在列A中找到“Criteria1”和在列B中找到“Criteria2”的行,并将它们的列C值相加。结果将放在单元格E2中。您可以根据需要更改条件和单元格位置。

如果您需要在多个条件下对数据进行求和,可以使用嵌套的IF语句或使用筛选器来实现。以下是两个示例:

使用嵌套的IF语句

Sub MultiCriteriaSum()

Dim i As Long
Dim Sum As Double

Sum = 0

For i = 2 To Range(“A” & Rows.Count).End(xlUp).Row
If Range(“A” & i).Value = “Criteria1” Then
If Range(“B” & i).Value = “Criteria2” Then
If Range(“C” & i).Value > 0 Then
Sum = Sum + Range(“C” & i).Value
End If
End If
End If
Next i

Range(“E2”).Value = Sum

End Sub

在此示例中,我们使用嵌套的IF语句来检查三个条件:列A中的“Criteria1”,列B中的“Criteria2”和列C中的值是否大于0。只有当所有条件都满足时,才会将列C中的值添加到总和中。

使用筛选器

Sub MultiCriteriaSum()

Dim Sum As Double

Sum = 0

Range(“A1:C” & Range(“A” & Rows.Count).End(xlUp).Row).AutoFilter Field:=1, Criteria1:="Criteria1"
Range(“A2:C” & Range(“A” & Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:="Criteria2"
Range(“A2:C” & Range(“A” & Rows.Count).End(xlUp).Row).AutoFilter Field:=3, Criteria1:=">0"

Sum = Application.WorksheetFunction.Sum(Range(“C2:C” & Range(“C” & Rows.Count).End(xlUp).Row).SpecialCells(xlCellTypeVisible))

Range(“E2”).Value = Sum

Range(“A1:C” & Range(“A” & Rows.Count).End(xlUp).Row).AutoFilter

End Sub

在此示例中,我们使用筛选器来筛选出符合条件的行。我们首先筛选出列A中的“Criteria1”,然后在此基础上筛选出列B中的“Criteria2”,最后在此基础上筛选出列C中的值大于0的行。然后,我们使用SUM函数计算可见单元格中的列C的总和,并将其放入单元格E2中。最后,我们清除筛选器。