|
发表于 2015-11-5 16:09
|
显示全部楼层
本楼为最佳答案
- Sub tt()
- arr = Range("a2:e" & [a65536].End(3).Row)
- brr = Range("e2:g" & [e65536].End(3).Row)
- Set d = CreateObject("scripting.dictionary")
- For i = 1 To UBound(brr) '各规格返回总数量
- x = brr(i, 2)
- d(x) = d(x) + brr(i, 3)
- Next
- For i = 1 To UBound(arr)
- x = arr(i, 2): sl = arr(i, 3)
- If d(x) > sl Then
- arr(i, 4) = sl
- d(x) = d(x) - sl
- Else
- arr(i, 4) = d(x)
- End If
- arr(i, 5) = arr(i, 4) - arr(i, 3)
- Next
- [i2].Resize(UBound(arr), 5) = arr
- End Sub
复制代码 |
|