- Sub test0() '假设A列有序
- Dim ar, br(1 To 90000, 1 To 150) '据情况调整
- Dim i As Long, j As Long, r As Long, c As Long, s As String
- r = 1
- br(r, 1) = "输出"
- For j = 2 To UBound(br, 2)
- br(r, j) = "列" & j - 1
- Next
- ar = Range("A1").CurrentRegion.Offset(1).Resize(, 2).Value
- For i = 1 To UBound(ar) - 1
- If s <> ar(i, 1) Then
- s = ar(i, 1)
- r = r + 1
- For j = 1 To 2
- br(r, j) = ar(i, j)
- Next
- Else
- br(r, j) = ar(i, 2)
- j = j + 1
- End If
- If ar(i, 1) <> ar(i + 1, 1) Then If j > c Then c = j
- Next
- With Range("D1")
- .CurrentRegion.ClearContents
- .Resize(r, c - 1) = br
- End With
- End Sub
复制代码 |