一分五应该以原始数据为主循环,示例代码如下:
Option Explicit
Sub 宏1()
Dim arr, i&, j&, k&
arr = ActiveSheet.UsedRange.Resize(, 1)
For k = 1 To UBound(arr)
i = (k - 1) \ 5 + 1
j = (k - 1) Mod 5 + 2
Cells(i, j) = arr(k, 1)
Next k
End Sub
另外,上面代码在数据量较大的时候存在性能问题,应该对结果也定义一个数组,循环只对结果数组赋值,最后把数组一次性写入单元格,这个改进作为练习吧,如果愿意可以一试。