'"零件图号"未做分割,因为数据量大时这个可能有重复 '源数据A2开始4列,输出在g列 Option Explicit Sub test() Dim i, arr, dic, n, brr Set dic = CreateObject("scripting.dictionary") arr = Range("a2:e" & [a65536].End(xlUp).Row) For i = 1 To UBound(arr, 1) If Not dic.exists(arr(i, 1)) Then dic.Add arr(i, 1), arr(i, 4) _ Else dic(arr(i, 1)) = dic(arr(i, 1)) & "," & arr(i, 4) Next ReDim brr(1 To dic.Count, 1 To 4) For i = 1 To UBound(arr, 1) If dic.exists(arr(i, 1)) Then n = n + 1 brr(n, 1) = arr(i, 1): brr(n, 2) = arr(i, 2) brr(n, 3) = arr(i, 3): brr(n, 4) = dic(arr(i, 1)) dic.Remove (arr(i, 1)) End If Next [g:j].ClearContents [g1].Resize(1, 4) = Split("零件图号 零件名 数 项目") If n > 0 Then [g2].Resize(n, UBound(brr, 2)) = brr End Sub