|
楼主 |
发表于 2019-1-11 09:19
|
显示全部楼层
老师,
这个代码可以实现,但是如果品名重复的,只能读取最前面的那个,我想实现顺序的,用Find也是只能读取一条
Sub dsmch()
Dim arr, brr, crr, d, i&, j%, k%, s&
Set d = CreateObject("scripting.dictionary")
arr = Sheet1.Range("c1").CurrentRegion
brr = Sheet2.Range("f1").CurrentRegion
ReDim crr(1 To 60000, 1 To 6)
For i = 2 To UBound(brr)
    d(brr(i, 1)) = d(brr(i, 1)) & "," & i
Next
For i = 2 To UBound(arr)
    x = Split(d(arr(i, 1)), ",")
    For j = 1 To UBound(x)
        s = s + 1: s2 = Val(x(j))
        For k = 1 To UBound(brr, 2)
            crr(s, k) = brr(s2, k)
        Next
        crr(s, 5) = arr(i, 4) * crr(s, 3)
        crr(s, 6) = arr(i, 2)
    Next
Next
Sheet3.Activate
[j3:o20000].Clear
Range("j3").Resize(s, 6) = crr
[o:o].NumberFormatLocal = "m""月""d""日"";@"
End Sub |
|