|
发表于 2014-6-7 16:22
|
显示全部楼层
本楼为最佳答案
本帖最后由 大灰狼1976 于 2014-6-7 16:24 编辑
结果输出在K列- Sub bbb()
- t = Timer
- Dim arr, arr1, i&, d As Object, d1 As Object, da As Date
- da = Sheets(4).[a2]
- Set d = CreateObject("scripting.dictionary")
- Set d1 = CreateObject("scripting.dictionary")
- arr = Sheets(4).Range("a4:b" & Sheets(4).[a65536].End(3).Row)
- ReDim arr1(1 To UBound(arr), 1 To 1)
- For i = 1 To UBound(arr)
- d(arr(i, 1)) = Val(arr(i, 2))
- d1(arr(i, 1)) = i
- Next i
- arr = Sheets(2).[a1].CurrentRegion
- For i = UBound(arr) To 2 Step -1
- If arr(i, 2) <= da And arr(i, 2) >= da - d(arr(i, 1)) Then arr1(d1(arr(i, 1)), 1) = arr1(d1(arr(i, 1)), 1) + arr(i, 3)
- Next i
- Sheets(4).[k4].Resize(UBound(arr1)) = arr1
- MsgBox Timer - t
- End Sub
复制代码 |
|