|
发表于 2015-3-28 13:23
|
显示全部楼层
本楼为最佳答案
- Sub Macro2()
- Dim arr, brr, crr, ar, d, i&, j%, s&, s2&, n&
- Set d = CreateObject("scripting.dictionary")
- Sheet1.Activate
- arr = Range("a1").CurrentRegion
- ReDim ar(1 To UBound(arr), 1 To UBound(arr, 2))
- brr = Sheet2.Range("a1").CurrentRegion
- ReDim crr(1 To UBound(brr), 1 To 2)
- For i = 2 To UBound(brr)
- If Not d.exists(brr(i, 10)) Then
- s = s + 1
- d(brr(i, 10)) = s
- crr(s, 1) = brr(i, 8)
- crr(s, 2) = brr(i, 7)
- Else
- n = d(brr(i, 10))
- crr(n, 1) = crr(n, 1) + brr(i, 8)
- crr(n, 2) = crr(n, 2) + brr(i, 7)
- End If
- Next
- For i = 2 To UBound(arr)
- If arr(i, 9) <> 0 Then
- s2 = s2 + 1
- For j = 1 To UBound(arr, 2)
- ar(s2, j) = arr(i, j)
- Next
- If d.exists(ar(s2, 14)) Then
- n = d(ar(s2, 14))
- ar(s2, 8) = crr(n, 1) / crr(n, 2)
- End If
- End If
- Next
- [a2:n65536] = ""
- Range("a2").Resize(s2, UBound(ar, 2)) = ar
- End Sub
复制代码 |
评分
-
查看全部评分
|