[英]Excel VBA cut and paste rage repeatedly
我是使用 VBA 并尝试反复剪切和复制范围的新手。 我正在搜索并尝试我的代码,但一无所获......
例如,假设一个范围 (A1:M1084) 中的整个数据由 124 行和 13 列的块组成。 所以第一个块在 (A1:M124) 中。 第二个数据块当前位于 (A125:M248) 中,并且想将其剪切并粘贴到第一个块旁边,在中间留出一个列空间 (N) 到 (O1:AA248)。 然后,重复该过程直到行尾(这次是 1084,但可以是任何其他数字),继续将下一个块(A249:M372)粘贴到第二块旁边,到(AC1:AO248),依此类推...
如果有人可以请帮助,非常感谢!
尝试这样的事情。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.