如何在工作表中选择整个范围,并在另一个工作表中保持粘贴范围中的两列,间隙为2列

时间:2014-07-10 08:31:48

标签: excel-vba vba excel

我使用了以下代码,但它非常具体:

Sub Macro 6 ()
    Windows("Projects_Europe2014 work.xlsx").Activate
    Range("B12:C16").Select
    Selection.Copy
    Windows("test1.xlsx").Activate
    ActiveSheet.Paste
    Windows("Projects_Europe2014 work.xlsx").Activate
    Range("D12:E16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("test1.xlsx").Activate
    Range("F3").Select
    ActiveSheet.Paste
    Windows("Projects_Europe2014 work.xlsx").Activate
    Range("F12:G16").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("test1.xlsx").Activate
    Range("J3").Select
    ActiveSheet.Paste
End Code

有没有办法,我可以继续增加范围,而无需手动输入cde?

1 个答案:

答案 0 :(得分:0)

您要复制的工作表是否包含预先存在的数据?如果不是,您可以复制整个范围,然后在需要的位置插入空列 - 每两个连续的列涉及数据

之后

您可以尝试下面的内容,看看它是否适合 - 您需要先在评论中填写您的参考文献。 " RANGE_REF"是原始范围粘贴应该出现的起点单元格

Sub pasteandinsert()
    Dim r As Range
    Dim r2 As Range

    'HERE
    Set r = Workbooks("Projects_Europe2014 work.xlsx").Worksheets("YOUR_WS").Range("YOUR_RANGE")
    r.Copy

    'HERE
    With Workbooks("test1.xlsx").Worksheets("YOUR_WS2")
        .Activate
        'HERE
        .Range("RANGE_REF").Select
        .Paste
    End With
    Application.CutCopyMode = False

    'HERE
    Set r2 = Range("RANGE_REF").Resize(r.Rows.count, r.Columns.count)

    i = 3
    colcount = r2.Columns.count

    Do While i <= colcount
        r2.Columns(i).Insert shift:=xlShiftToRight
        r2.Columns(i).Insert shift:=xlShiftToRight
        i = i + 4
        colcount = colcount + 2
    Loop
End Sub