|
本帖最后由 superle! 于 2014-6-29 15:57 编辑
J列为数据源从J2开始到J很多行,黄色背景为VBA实现的填充
以J37为准,J列最下面有值的下一行为准,下面的值可能会增加或是减少。可能会增加到5千行,所以要考虑。
从AB2的值开始填充为隔1,取J列的J2,J4,J6,J8,J10,J12,J14的值。
AC2的值开始填充为隔2的值。取J列的J5,J9,J13的值。
注意的是,一定要从J33的值为准,往上取隔1到隔12的值,然后把取到的最后一个值填充到第二行1个。
执行VBA按钮时不清除黄色左右列的数据 。
- Sub Macro1()
- On Error Resume Next
- Dim arr, brr(1 To 60000, 1 To 12)
- arr = Range("j2:j" & Cells(Rows.Count, "j").End(xlUp).Row)
- m = 0
- For i = 1 To 12
- s = UBound(arr) + 1: n = 0
- Do Until s < 1
- s = s - i - 1
- Loop
- Do Until s > UBound(arr)
- s = s + i + 1
- n = n + 1
- brr(n, i) = arr(s, 1)
- Loop
- If n > m Then m = n
- Next
- [ab2:am5000].ClearContents
- Range("ab2").Resize(m, 12) = brr
- End Sub
复制代码
|
|