|
发表于 2015-5-22 14:31
|
显示全部楼层
本楼为最佳答案
严谨一点应该这样- Sub ttt() '不用字典
- arr = [a3].CurrentRegion
- ReDim brr(UBound(arr), 1 To 2)
- brr(0, 1) = "客户": brr(0, 2) = "总金额"
- xmin = Val([g2])
- x = "," '已统计过的客户名单
- For i = 2 To UBound(arr)
- kh = arr(i, 2) '客户名
- If InStr(x, "," & arr(i, 2) & ",") = 0 Then '表示该客户未被统计过
- x = x & kh & "," '加入已统计名单
- zje = Application.WorksheetFunction.SumIf([b:b], kh, [c:c]) '该客户的总金额
- If zje >= xmin Then
- n = n + 1
- brr(n, 1) = kh
- brr(n, 2) = zje
- End If
- End If
- Next
-
- With Sheet2
- .Activate
- .Cells.Clear
- If n > 0 Then
- .[a1].Resize(n + 1, 2) = brr
- .[a2].Resize(n, 2).Sort key1:=.[a2]
- End If
- End With
- End Sub
复制代码 区别在第9行,考虑到某客户名中包含另一客户名的情况。 |
|