superle! 发表于 2015-1-19 22:31
表2的BJ9301:DQ18288区域没有实现填充?
这个加个循环就好- Sub t()
- Dim arr, lr&, rng As Range
- For i = 0 To 1
- With Sheets("sheet1")
- arr = .Range("J2:J" & (.Cells(Rows.Count, "J").End(3).Row) - i) 'J列最大行数减i
- End With
- lr = UBound(arr)
- Set rng = Range("Bj301:DQ324").Offset(i * 9000) '填充单元格起始位置
- Call ff(lr, arr, rng) '执行ff
- Next
- End Sub
- Sub ff(lr, arr, rng)
- Dim n%, m%, i&, j&, lst&
- Dim brr(1 To 24, 1 To 60)
- On Error Resume Next
- For i = 1 To 23
- brr(24 - i, 1) = arr(lr - i + 1, 1) '第一列
- Next
- For n = 249 To 0 Step -1 '从249到0
- m = WorksheetFunction.RoundUp((lr + 1) / (n + 1), 0) '计算最大列数
- For j = 2 To m
- lst = lr - n * (j - 1) - j + 2 '起始行
- For i = 0 To 23
- brr(24 - i, j) = arr(lst - i, 1)
- Next
- Next
- rng.Offset(n * 36) = brr '赋值,根据n值偏移
- Next
- End Sub
复制代码 |