Excel 在同一工作表中复制10行乘10行

Excel 在同一工作表中复制10行乘10行,excel,vba,Excel,Vba,我的意图是剪切范围A1:A10以上的10行,并将它们移动到范围C1。然后,从RangeA11:A20继续,并将它们粘贴到RangeC21。循环将继续,直到列A中的最后一个单元格包含数据。然而,通过使用切割方法,它显示了错误。代码如下所示: Sub RowsByRows() Dim rngCut As Range, rngPaste As Range Set rngCut = Sheets("Sheet1").Range("A1:A10") Set rngPaste = S

我的意图是剪切范围A1:A10以上的10行,并将它们移动到范围C1。然后,从RangeA11:A20继续,并将它们粘贴到RangeC21。循环将继续,直到列A中的最后一个单元格包含数据。然而,通过使用切割方法,它显示了错误。代码如下所示:

Sub RowsByRows()
    Dim rngCut As Range, rngPaste As Range
    Set rngCut = Sheets("Sheet1").Range("A1:A10")
    Set rngPaste = Sheets("Sheet1").Range("C1")
    Do While Application.CountA(rngCut) > 0
        rngCut.Cut Destination:=rngPaste
        Set rngCut = rngCut.Offset(10, 0)
        Set rngPaste = rngPaste.Offset(20, 0)
    Loop
End Sub

看看这对你是否有效

Sub RowsByRows()
    Dim rws As Long
    Dim i As Integer

    rws = Cells(Rows.Count, "A").End(xlUp).Row
    x = 0
    y = 0

    For i = 1 To (rws / 10) + 1
        Range("A" & 1 + y & ":A" & 10 + y).Cut Destination:=Cells(1 + x, 3)
        x = x + 20
        y = y + 10
    Next i

End Sub

看看这对你是否有效

Sub RowsByRows()
    Dim rws As Long
    Dim i As Integer

    rws = Cells(Rows.Count, "A").End(xlUp).Row
    x = 0
    y = 0

    For i = 1 To (rws / 10) + 1
        Range("A" & 1 + y & ":A" & 10 + y).Cut Destination:=Cells(1 + x, 3)
        x = x + 20
        y = y + 10
    Next i

End Sub

这就是你想要的吗

Option Explicit

Sub RowsByRows()
    Dim ws As Worksheet
    Dim lRow As Long, rw As Long, i As Long
    Dim StartRow As Long, EndRow As Long

    '~~> Change this to the relevant worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row

        For i = 1 To lRow Step 10
            StartRow = i: EndRow = StartRow + 9

            Range("A" & StartRow & ":A" & EndRow).Cut _
            Destination:=.Cells(1 + rw, 3)

            rw = rw + 20
        Next i
    End With
End Sub

这就是你想要的吗

Option Explicit

Sub RowsByRows()
    Dim ws As Worksheet
    Dim lRow As Long, rw As Long, i As Long
    Dim StartRow As Long, EndRow As Long

    '~~> Change this to the relevant worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row

        For i = 1 To lRow Step 10
            StartRow = i: EndRow = StartRow + 9

            Range("A" & StartRow & ":A" & EndRow).Cut _
            Destination:=.Cells(1 + rw, 3)

            rw = rw + 20
        Next i
    End With
End Sub

做得好。。但是您必须稍微修改一下:如果有21行数据,这段代码将忽略第21行中的数据:再添加一个循环将修复该问题++是的,修复该问题:很好。。但是您必须稍微修改一下:如果有21行数据,那么这段代码将忽略第21行中的数据:再添加一个循环将修复++是的,修复了它:这正是我试图寻找的!非常感谢这正是我试图寻找的!非常感谢