模拟了一段数据,实在没什么意思,假设A1:ABn有数据,除去第一列,正好27列数据。 代码如下: Sub mytest() Sheet6.Activate Dim arr, brr, i&,m&, n&, r& r = Cells(Rows.Count, 1).End(xlUp).Row arr = Range("B1:AB" & r) ReDim brr(1 To 9 * UBound(arr), 1 To 4) For i = 1 To 9 * UBound(arr) m = (i - 1) Mod 3 + 1 n = (i - 1) \ 3 + 1 brr(i, 1) = i brr(i, 2) = arr(m, 3 * n - 2) brr(i, 3) = arr(m, 3 * n - 1) brr(i, 4) = arr(m, 3 * n) Next Sheet7.Activate [a1].Resize(UBound(brr), 4) = brr End Sub 我这里sheet6是数据,sheet7放结果,实际请根据需求修改。