|
参与一下。。。。
- Sub test()
- Dim Arr, Brr(), x&, y&, i&, j&
- Dim M&, R&, C&, N&, H As Double
- Arr = Sheets("原数据").Range("a1").CurrentRegion
- ReDim Brr(1 To UBound(Arr), 1 To 6)
- With Sheets("分栏数据")
- M = .[h1] '行数
- .ResetAllPageBreaks '重置分页符
- .Range("a2:f65535").ClearContents '清空数据
- .Cells.RowHeight = .[j1]
- For i = 2 To UBound(Arr)
- If Arr(i, 3) <> Arr(i - 1, 3) Then N = N + 1: x = 1 Else x = x + 1
- If x = M * 2 + 1 Then N = N + 1
- C = (Int(x / (M + 0.1)) Mod 2) * 3
- R = N * M - M + ((x - 1) Mod M) + 1
- For j = 1 To 3
- Brr(R, C + j) = Arr(i, j)
- Next
- If Arr(i, 3) <> Arr(i - 1, 3) And i > 2 Then .HPageBreaks.Add Before:=Range("A" & R + 1) '设置分页符
- Next i
- .Range("A2").Resize(R, 6) = Brr
- End With
- End Sub
复制代码 |
|