vba sumifs函数使用方法并举例
时间: 2023-12-30 10:03:27 浏览: 415
sumifs函数多条件求和实例
在 VBA 中,你可以使用 Application.WorksheetFunction.SumIfs 函数来调用 SUMIFS 函数。下面是 VBA 中 SUMIFS 函数的使用方法和示例:
```vb
Dim kII As Double
Dim WbI As Workbook
Dim Sheet2 As Worksheet
Dim i As Long
Set WbI = ThisWorkbook ' 假设要筛选的数据在当前工作簿中
Set Sheet2 = WbI.Sheets("Sheet2") ' 假设要筛选的数据在名为 "Sheet2" 的工作表中
i = 1 ' 假设要筛选的数据从第一行开始
kII = Application.WorksheetFunction.SumIfs(WbI.Sheets(2).Range("S:S"), WbI.Sheets(2).Range("B:B"), Sheet2.Range("A" & i).Value, WbI.Sheets(2).Range("U:U"), "=出客户", WbI.Sheets(2).Range("R:R"), ">2023-01-31")
```
在上述代码中,我们首先声明了变量 `kII`、`WbI`、`Sheet2` 和 `i`。然后,我们将当前工作簿赋值给 `WbI`,将名为 "Sheet2" 的工作表赋值给 `Sheet2`,并设置变量 `i` 的初始值为 1。
接下来,我们使用 `Application.WorksheetFunction.SumIfs` 函数来计算满足条件的单元格的总和。在这个例子中,我们使用了四个条件范围和四个条件:
- 求和范围为 `WbI.Sheets(2).Range("S:S")`,即第二个工作表的 S 列。
- 第一个条件范围为 `WbI.Sheets(2).Range("B:B")`,即第二个工作表的 B 列,用于筛选客户编号。
- 第一个条件为 `Sheet2.Range("A" & i).Value`,即根据变量 `i` 的值获取要筛选的客户编号。
- 第二个条件范围为 `WbI.Sheets(2).Range("U:U")`,即第二个工作表的 U 列,用于筛选出客户。
- 第二个条件为 `"=出客户"`,即筛选出 U 列中等于 "出客户" 的数据。
- 第三个条件范围为 `WbI.Sheets(2).Range("R:R")`,即第二个工作表的 R 列,用于筛选日期。
- 第三个条件为 `">2023-01-31"`,即筛选出 R 列中大于 "2023-01-31" 的数据。
最后,将计算得到的总和赋值给变量 `kII`。
请根据你的实际需求和数据范围进行相应的调整。
阅读全文