字典的计数/求和都是通过利用,字典keys键的唯一性进行统计,当key键出现相同时进行数量的加一或者进行keys键的值求和!
代码语言:javascript复制Sub RES(ByVal ST As Integer)
Dim arr, i, brr, dic '定义变量
Set dic = CreateObject("scripting.dictionary") '创建字典对象
arr = [A2:B29] '把A2至B29的数据装入数组arr
For i = 1 To UBound(arr) '遍历数据取数
If ST = 1 Then '状态当为1时执行 value统计计数否则执行value求和
dic(arr(i, 1)) = dic(arr(i, 1)) 1 '执行keys计数
Else
dic(arr(i, 1)) = dic(arr(i, 1)) arr(i, 2) '执行keys的value求和
End If
Next
brr = Array(dic.keys, dic.items) '把统计后的数据装入数组brr
[D2].Resize(dic.Count, 2) = WorksheetFunction.Transpose(brr) '把brr数组写入单元格
End Sub
Sub A_SUM() '执行keys的value求和
RES (0)
End Sub
Sub A_COUNT() '执行keys计数
RES (1)
End Sub