|
- r = Sheet1.[b65536].End(3).Row
- arr = Sheet1.Range("A1:L" & r)
- ReDim brr(1 To UBound(arr), 1 To 4)
- sday = Sheet3.[b1]: eday = Sheet3.[d1]
- Set d = CreateObject("scripting.dictionary")
- For i = 2 To UBound(arr)
- xkey = arr(i, 2)
- rq = arr(i, 1)
- If Len(xkey) > 0 Then
- If Not d.exists(xkey) Then
- k = k + 1
- d(xkey) = k
- brr(k, 1) = xkey
- brr(k, 2) = arr(i, 4)
- End If
- p = d(xkey)
- If rq <= eday Then brr(p, 3) = brr(p, 3) + Val(arr(i, 11))
- If rq <= eday And rq >= sday Then brr(p, 4) = brr(p, 4) + Val(arr(i, 12))
- End If
- Next
- ReDim crr(1 To k, 1 To 4)
- For i = 1 To k
- If brr(i, 3) > 0 Or brr(i, 4) > 0 Then
- n = n + 1
- crr(n, 1) = brr(i, 1): crr(n, 2) = brr(i, 2): crr(n, 3) = brr(i, 3): crr(n, 4) = brr(i, 4)
- End If
- Next
- With Sheet3
- .Range("a4:d10000").ClearContents
- .[a4].Resize(n, 4) = crr
- End With
- End Sub
复制代码 多用个数组crr,把brr里非空的筛选出来。 |
|