Excel VBA中的循环剪切粘贴功能
嗨,我正在尝试剪切偶数行,然后将其粘贴到奇数行旁边 我的数据是这样的 我有下面的代码,它将只剪切第2行并粘贴到第1行旁边Excel VBA中的循环剪切粘贴功能,excel,vba,Excel,Vba,嗨,我正在尝试剪切偶数行,然后将其粘贴到奇数行旁边 我的数据是这样的 我有下面的代码,它将只剪切第2行并粘贴到第1行旁边 Range("B2:E2").Cut Range("F2") 但我不可能对每一行都这么做。那么,我如何做一个循环,这样它就可以为我完成其余的工作呢 理想的结果应该是这样的 这对我来说很有用: Sub SubCutAndPaste() 'Declaring variable. Dim RngRange01 As Ran
Range("B2:E2").Cut Range("F2")
但我不可能对每一行都这么做。那么,我如何做一个循环,这样它就可以为我完成其余的工作呢
理想的结果应该是这样的
这对我来说很有用:
Sub SubCutAndPaste()
'Declaring variable.
Dim RngRange01 As Range
'Setting variable.
Set RngRange01 = ActiveSheet.Range("A1:E1")
'Starting a Do-Loop cycle that will end when all the cells in the given RngRange01 are _
blank.
Do Until Excel.WorksheetFunction.CountBlank(RngRange01) = RngRange01.Cells.Count
'Cutting-pasting the second lane. The second lane has the same columns as the _
RngRange01 and it is offset by 1 column.
RngRange01.Offset(1, 1).Cut RngRange01.Offset(0, RngRange01.Columns.Count)
'Setting RngRange01 for the next lane.
Set RngRange01 = RngRange01.Offset(2, 0)
Loop
End Sub
请尝试以下方法:
根据数据更改for循环中的偏移量和范围
Sub ReFormat()
Dim cell
Dim CopyRange As String
Dim PasteRange As String
For Each cell In Range("A1:A12")
' Filter out only odd rows
If (cell.Row Mod 2) <> 0 Then
'create range string for values to copy
CopyRange = (cell.Offset(1, 1).Address + ":" + cell.Offset(1, 5).Address)
'create range string for values to paste into
PasteRange = (cell.Offset(0, 5).Address + ":" + cell.Offset(0, 9).Address)
Range(CopyRange).Copy
Range(PasteRange).PasteSpecial xlPasteValues
Range(CopyRange).ClearContents
End If
Next
End Sub
Sub-ReFormat()
暗室
将复制范围设置为字符串
将范围设置为字符串
对于范围内的每个单元格(“A1:A12”)
'仅过滤奇数行
如果(cell.Row Mod 2)为0,则
'为要复制的值创建范围字符串
CopyRange=(单元格偏移量(1,1).地址+”:“+单元格偏移量(1,5).地址)
'为要粘贴到的值创建范围字符串
PasteRange=(单元格偏移量(0,5).Address+“:”+单元格偏移量(0,9).Address)
范围(CopyRange)。复制
范围(粘贴范围)。粘贴特殊xlPasteValues
范围(CopyRange).ClearContents
如果结束
下一个
端接头
您可以声明一个范围变量,然后使用range.Offset来标识目标。