|
发表于 2014-9-25 10:11
|
显示全部楼层
本楼为最佳答案
- Sub Macro1()
- Dim arr, brr, d, d2, d3, i&
- Set d = CreateObject("scripting.dictionary")
- Set d2 = CreateObject("scripting.dictionary")
- Set d3 = CreateObject("scripting.dictionary")
- arr = Sheet1.Range("a1").CurrentRegion
- brr = Sheet2.Range("a1").CurrentRegion
- For i = 2 To UBound(arr)
- d(arr(i, 1)) = arr(i, 3)
- Next
- For i = 2 To UBound(brr)
- d2(brr(i, 1)) = i
- d3(brr(i, 1)) = d3(brr(i, 1)) + brr(i, 3)
- Next
- For i = 2 To UBound(brr)
- If d(brr(i, 1)) > d3(brr(i, 1)) Then
- If i <> d2(brr(i, 1)) Then brr(i, 3) = 0 Else brr(i, 3) = d3(brr(i, 1)) - d(brr(i, 1))
- Else
- x = brr(i, 3)
- If brr(i, 3) < d(brr(i, 1)) Then
- brr(i, 3) = 0
- d(brr(i, 1)) = d(brr(i, 1)) - x
- Else
- brr(i, 3) = x - d(brr(i, 1))
- d(brr(i, 1)) = 0
- End If
- End If
- Next
- Sheet2.Range("h1").Resize(UBound(brr), UBound(brr, 2)) = brr
- End Sub
复制代码 |
|