|
1学分
各位大神,请帮忙,感谢。
是这个意思吗
Sub test()
Dim arr, brr, k As Integer, n As Byte, iar As Integer, ibr As Integer, d, d1
arr = Worksheets("原材料存库").Range("b2").CurrentRegion
brr = Worksheets("流水台账").Range("b3").CurrentRegion
Set d = CreateObject("scripting.dictionary")
Set d1 = CreateObject("scripting.dictionary")
For n = 2 To UBound(arr)
For m = UBound(brr) To 2 Step -1
If brr(m, 1) = arr(n, 3) And brr(m, 3) = "采购收货单" Then
d(arr(n, 3)) = d(arr(n, 3)) + brr(m, 4)
d1(arr(n, 3)) = d1(arr(n, 3)) & "|" & brr(m, 2)
If d(arr(n, 3)) >= arr(n, 8) Then
arr(n, 4) = d1(arr(n, 3)): Exit For
End If
End If
Next m
Next n
Worksheets("原材料存库").Range("b2").Resize(UBound(arr), UBound(arr, 2)) = arr
End Sub
|
最佳答案
查看完整内容
是这个意思吗
Sub test()
Dim arr, brr, k As Integer, n As Byte, iar As Integer, ibr As Integer, d, d1
arr = Worksheets("原材料存库").Range("b2").CurrentRegion
brr = Worksheets("流水台账").Range("b3").CurrentRegion
Set d = CreateObject("scripting.dictionary")
Set d1 = CreateObject("scripting.dictionary")
For n = 2 To UBound(arr)
For m = UBound(brr) To 2 Step ...
|