|
- Sub qs()
- Dim arr, i, dic
- Set dic = CreateObject("scripting.dictionary")
- arr = Sheet1.Range("a1").CurrentRegion.Value
- ReDim brr(1 To UBound(arr), 1 To 200)
- rw = 2: cl = 2: sm = 0
- For i = 2 To UBound(arr)
- s = arr(i, 1) & arr(i, 2)
- If Not dic.exists(s) Then
- rw = rw + 1
- dic(s) = rw
- brr(rw, 1) = arr(i, 1)
- brr(rw, 2) = arr(i, 2)
- End If
- s2 = arr(i, 3) & arr(i, 4)
- If Not dic.exists(s2) Then
- cl = cl + 1
- dic(s2) = cl
- brr(1, cl) = arr(i, 3): brr(2, cl) = arr(i, 4)
- End If
- s3 = s & s2
- If Not dic.exists(s3) Then
- dic(s3) = arr(i, 5)
- sm = sm + arr(i, 5)
- Else
- dic(s3) = dic(s3) = arr(i, 5)
- sm = sm + arr(i, 5)
- End If
- Next i
- k = dic.keys
- iit = dic.items
- For i = 3 To rw
- s4 = ""
- s4 = brr(i, 1) & brr(i, 2)
- For j = 3 To cl
- s5 = s4 & brr(1, j) & brr(2, j)
- brr(i, j) = dic(s5)
- Next
- Next
- brr(1, 1) = "产品代码": brr(1, 2) = "产品"
- With Sheet2
- .Cells.Clear
- .Range("a1").Resize(rw, cl) = brr
- .Range("a1").Resize(rw, cl).Borders.LineStyle = 1
- .Range("a1").Resize(rw, cl).HorizontalAlignment = xlCenter
- .Range("a1:a2").Merge: .Range("b1:b2").Merge
- .Cells(rw + 2, cl).Value = sm
- End With
- Set dic = Nothing
- End Sub
复制代码 |
|