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中。最后,我们清除筛选器。