Excel VBA反复剪切和粘贴
在使用VBA和尝试反复剪切和复制范围方面,我是一个完全的新手。 我一直在搜索和尝试我的代码,但什么也找不到 例如,假设范围(A1:M1084)中的整个数据由124行13列的块组成。 因此,第一个块位于(A1:M124)。 第二个数据块当前位于(A125:M248),并且希望将其剪切并粘贴到第一个数据块的旁边,在这两个数据块之间留出一个列空间(N)到(O1:AA248)。 然后,重复该过程直到行结束(这次是1084,但可以是任何其他数字),继续粘贴第二个块旁边的下一个块(A249:M372),粘贴到(AC1:AO248),以此类推Excel VBA反复剪切和粘贴,excel,vba,loops,range,paste,Excel,Vba,Loops,Range,Paste,在使用VBA和尝试反复剪切和复制范围方面,我是一个完全的新手。 我一直在搜索和尝试我的代码,但什么也找不到 例如,假设范围(A1:M1084)中的整个数据由124行13列的块组成。 因此,第一个块位于(A1:M124)。 第二个数据块当前位于(A125:M248),并且希望将其剪切并粘贴到第一个数据块的旁边,在这两个数据块之间留出一个列空间(N)到(O1:AA248)。 然后,重复该过程直到行结束(这次是1084,但可以是任何其他数字),继续粘贴第二个块旁边的下一个块(A249:M372),粘贴
如果有人能帮忙,非常感谢 试试这样的东西
Sub MoveBlocks()
Dim rowCount As Integer, colCount As Integer
Dim inRow As Integer
Dim blockSize As Integer
Dim colOffset As Integer
blockSize = 124
rowCount = Range("A1").CurrentRegion.Rows.Count
colCount = Range("A1").CurrentRegion.Columns.Count
For inRow = blockSize + 1 To rowCount Step blockSize
colOffset = Int(inRow / blockSize) * (colCount + 1)
Range(Cells(1, 1), Cells(blockSize, colCount)).Offset(0, colOffset).Value2 = Range(Cells(1, 1), Cells(blockSize, colCount)).Offset(inRow - 1, 0).Value2
Range(Cells(1, 1), Cells(blockSize, colCount)).Offset(inRow - 1, 0).ClearContents
Next inRow
End Sub
毕竟,我自己通过这么多的尝试和错误得到了答案。张贴,如果它可能有任何用处。此外,如果有任何其他更有效的代码,将很高兴有
你能和你的愿望分享演示屏幕吗?所以我可以在这方面提供帮助。我刚刚看到了你的留言,很抱歉我回复晚了。我可以自己解决它,而且我还得到了另一个比我的代码运行效率更高的答案。所以现在天气很好。非常感谢你的帮助,非常感谢!在我自己弄明白之前,我没有看到你的答案。我可以从你的回答中学到很多,我不需要像以前那样手动计算列!对不起,我不知道我必须接受答案。你的回答非常好-非常有效!再次感谢你。
Sub Cutrange()
Dim i As Long
Dim Lrow As Long
Lrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim oRange As Range, dRange As Range
Set oRange = Range(Cells(1, 1), Cells(124, 14))
Set dRange = Cells(1, 1)
For i = 1 To Lrow
oRange.Offset(124 * i).Cut Destination:=dRange.Offset(, 14 * i)
Next i
End Sub