我在Excel中有一长串项目列表(D6:D1000 +)
我正在尝试创建一个宏,将项目移动到15个组中右侧的下一列。
所以D6:D21停留在那里,然后D22:D37应该移动到E6:E21,D38:D53移动到F6:F21,依此类推......
我从google搜索中找到了一些代码,我之前提供了以下代码,但是我发现了一个超出范围的错误。
Sub SplitInto15CellsPerColumn()
Dim X As Long, LastRow As Long, vArrIn As Variant, vArrOut As Variant
LastRow = Cells(Rows.Count, "D").End(xlUp).Row
vArrIn = Range("D6:D" & LastRow)
ReDim vArrOut(1 To 15, 1 To Int(LastRow / 15) + 1)
For X = 0 To LastRow - 1
vArrOut(1 + (X Mod 15), 1 + Int(X / 15)) = vArrIn(X + 1, 1)
Next
Range("B1").Resize(15, UBound(vArrOut, 2)) = vArrOut
End Sub
答案 0 :(得分:1)
For X = 0 To LastRow - 1
你应该使用
For X = 0 To LastRow - 6
由于您的源表以6开头。
另外,检查(通过做MsgBox LastRow)你确实得到LastRow的正确值