|
发表于 2008-7-1 11:02
|
显示全部楼层
本楼为最佳答案
Sub BU() Dim arr1(), arr2(), i1 As Integer, i2 As Integer Dim dic As New Dictionary Sheet3.Select i1 = [a65536].End(xlUp).Row arr1 = Range("a3:a" & i1) Range("b3:e" & i1).Clear arr2 = Range("b3:e" & i1) For i1 = 1 To UBound(arr1) dic(arr1(i1, 1)) = i1 Next i1 Sheet1.Select i1 = [a65536].End(xlUp).Row arr1 = Range("a2:c" & i1) For i1 = 1 To UBound(arr1) If dic.Exists(arr1(i1, 1)) Then If arr1(i1, 2) = "个" Then arr2(dic(arr1(i1, 1)), 1) = arr2(dic(arr1(i1, 1)), 1) + arr1(i1, 3) Else arr2(dic(arr1(i1, 1)), 2) = arr2(dic(arr1(i1, 1)), 2) + arr1(i1, 3) End If End If Next i1 Sheet2.Select i1 = [a65536].End(xlUp).Row arr1 = Range("a2:c" & i1) For i1 = 1 To UBound(arr1) If dic.Exists(arr1(i1, 1)) Then If arr1(i1, 2) = "个" Then arr2(dic(arr1(i1, 1)), 3) = arr2(dic(arr1(i1, 1)), 3) + arr1(i1, 3) Else arr2(dic(arr1(i1, 1)), 4) = arr2(dic(arr1(i1, 1)), 4) + arr1(i1, 3) End If End If Next i1 Sheet3.Select [b3].Resize(dic.Count, 4) = arr2 End Sub 此代码未将第一、二张表中有而第三张表中无的名称计入 |
|