- Sub test0()
- Dim ar, br(), s As String
- Dim i As Long, j As Long, k As Long, r As Long
-
- With Sheet1
- ar = .Range("A1", .Cells(.Rows.Count, "I").End(xlUp).Offset(1)).Value
- End With
- ReDim br(1 To UBound(ar) * 4, 1 To UBound(ar, 2))
-
- For i = 2 To UBound(ar) - 1
- If ar(i, UBound(ar, 2)) <> s Then
- s = ar(i, UBound(ar, 2))
- r = r + 2
- For j = 1 To UBound(ar, 2)
- br(r - 1, j) = ar(1, j)
- Next
- For j = 1 To UBound(ar, 2)
- br(r, j) = ar(i, j)
- Next
- Else
- k = k + 1
- End If
- If ar(i + 1, UBound(ar, 2)) <> ar(i, UBound(ar, 2)) Then
- r = r + 1
- If k > 1 Then
- For j = 1 To UBound(ar, 2)
- br(r, j) = ar(i, j)
- Next
- End If
- r = r + 1
- k = 0
- End If
- Next
-
- With Sheet2
- .UsedRange.ClearContents
- With .Range("A1").Resize(r - 1, UBound(br, 2))
- .Columns(1).NumberFormatLocal = "@"
- .Value = br
- End With
- End With
-
- Beep
- End Sub
复制代码 |