|
一有附件就清楚了。我是按A列编码合并的,因为发现B列名称书写极不规范,有空格,有错字。当然你可在代码中修改成按B列合并。- Sub 合并相同名称()
- Set d = CreateObject("scripting.dictionary")
- With Worksheets("本年")
- r = .Range("a65536").End(xlUp).Row
- arr = .Range("a3:q" & r)
- End With
- brr = arr: n = 1
- For i = 2 To UBound(arr)
- x = Trim(arr(i, 1)) '按编码合并
- 'x = Trim(arr(i, 2)) '按名称合并
- If Not d.exists(x) Then
- n = n + 1
- d(x) = n
- For j = 1 To UBound(arr, 2)
- brr(n, j) = arr(i, j)
- Next
- Else
- p = d(x)
- For j = 3 To UBound(arr, 2)
- If arr(i, j) > 0 Then brr(p, j) = brr(p, j) + arr(i, j)
- Next
- End If
- Next
- With Sheets(2)
- .Cells.Clear
- .[a1].Resize(n, UBound(brr, 2)) = brr
- .Activate
- End With
- End Sub
复制代码 |
|