|
- Sub ykcbf() '//2025.3.10
- Dim zrr(1 To 1000)
- With ActiveSheet
- r = .Cells(Rows.Count, 1).End(3).Row
- arr = .[a1].Resize(r, 4)
- col = 2
- For i = 2 To UBound(arr)
- If arr(i, col) <> arr(i - 1, col) Then m = m + 1: zrr(m) = Array(i, i)
- If i = r Then zrr(m)(1) = r Else If arr(i, col) <> arr(i + 1, col) Then zrr(m)(1) = i
- Next
- ReDim brr(1 To r, 1 To 100)
- For x = 1 To m
- r1 = zrr(x)(0): r2 = zrr(x)(1)
- n = r2 - r1 + 1
- k = 3
- brr(x, 1) = arr(r1, 1)
- brr(x, 2) = arr(r1, 2)
- brr(x, 3) = arr(r1, 3)
- For i = r1 To r2
- k = k + 1
- brr(x, k) = arr(i, 4)
- Next
- mx = IIf(mx < k, k, mx)
- Next
- .Columns(7).NumberFormatLocal = "@"
- .[g2].Resize(16, 100) = Empty
- .[g2].Resize(m, mx) = brr
- End With
- End Sub
复制代码
|
|