|
发表于 2015-6-21 19:06
|
显示全部楼层
本楼为最佳答案
Sub tt()
On Error GoTo ErrorHandle '错误跳转语句
Dim arr, y, n, brr
arr = Application.Transpose(Sheet2.Range("a2:a16"))
'错误原因是brr数组size不够
ReDim brr(1 To WorksheetFunction.RoundUp(UBound(arr) / 3, 0) * 10 - 9, 1 To 7)
n = 1
k = -2
For y = 1 To UBound(arr)
k = k + 3
If k > 7 Then k = 1: n = n + 10
brr(n, k) = arr(y)
Next y
Range("b2").Resize(n, 7) = brr
EndSub: '此处表示正常结束,退出SUB
Exit Sub
ErrorHandle:
Stop '出错时会跳转到这里,可以查看错误时变量值和状态
End Sub
WorksheetFunction.RoundUp(UBound(arr) / 3, 0) * 10 - 9这部分公式是因为目标区域是如果只有一行,那行高是1,两行就是11,三行就是21,以此类推,所以要这样计算。
|
|