VBA剪切粘贴数据范围

时间:2016-10-07 14:24:41

标签: excel vba excel-vba

我试图制作大量的遗传数据,使用VBA在Excel中更易读。我试图在第15列之后剪切并粘贴每个有数据的7个单元格,然后将它们放在8-15列下面。 我需要的例子包括在图片中。 DATA EXAMPLE(RAW vs我需要的样子)正如你可以从代码中看到的那样,真实的数据要大一些。 (680行和100多列。)

当我尝试运行代码时,它会将数据范围粘贴到新行中时失败。 (错误1004)

我的代码是:

Sub ShiftRows()

    Dim codingCol, startCol As Integer

    Dim LastRow As Integer
    Dim CurrentRow As Integer
    Dim LastCol, BeginCol As Integer
    Dim CurrentInsertRow As Integer


    LastRow = 2

    For CurrentRow = 680 To LastRow Step -1
        LastCol = 15
        Do While Cells(CurrentRow, LastCol) <> ""
        LastCol = LastCol + 1
        Loop

    CurrentInsertRow = CurrentRow

    For BeginCol = 0 To ((LastCol - 15) / 7) - 1

        CurrentInsertRow = CurrentInsertRow + 1
        Rows(CurrentRow).Offset(1).Insert shift:=xlShiftDown
        Range(Cells(CurrentRow, 15 + (BeginCol * 7)).Address & ":" & Cells(CurrentRow, 15 + (BeginCol * 7) + 6).Address).Cut
        Range("H:N" & CurrentInsertRow).Paste

        Next BeginCol
    Next CurrentRow
End Sub

2 个答案:

答案 0 :(得分:0)

您的单元格引用为"H:N" & CurrentInsertRow,或者H:N2,例如,这是不完整的。尝试:

Range("H" & CurrentInsertRow & ":N" & CurrentInsertRow).Paste

答案 1 :(得分:0)

Range.Cut允许您指定后面的粘贴范围。尝试类似:

Range("A1:A3").Cut Range("B10")

您可以将我的范围值替换为您想要的范围值。