如何反复将特定范围复制到另一个工作表?

时间:2018-04-24 09:57:37

标签: vba

我对这个网站很新,所以请耐心等待。

我的问题:

假设我需要从A2:X16复制单元格Sheet 1并将其粘贴到Sheet 2 15次,然后将A17:X31Sheet 1粘贴到Sheet 2 15次,就在我之前复制的那个之下。

Sub etest()
  Dim Rng as range
  If IsNumeric(Range("BX3")) = True Then
    MsgBox "Success!"
    Set Rng = Range("A2:X16")
    Rng.Copy Rng.Offset(15).Resize(Range("BW3") * Rng.Rows.Count)
  Else
    MsgBox "please enter a valid number."
  End If
  Application.CutCopyMode = False
End Sub

1 个答案:

答案 0 :(得分:0)

您的代码不会复制任何内容或将单元格值设置为等于另一个单元格值(两种方式都用于将内容从一个单元格移动到另一个单元格)。

此代码使用几个简单循环将Sheet1中的两个静态范围复制到Sheet2中的动态范围。

代码使用ThisWorkbook,它是对包含代码的工作簿的引用。您也可以根据需要使用ActiveWorkBookWorkbooks("MyNamed_WorkedBook")

Sub Test()

    Dim lRow As Long

    For lRow = 0 To 14
        ThisWorkbook.Worksheets("Sheet1").Range("A2:X16").Copy _
            Destination:=ThisWorkbook.Worksheets("Sheet2").Cells(lRow * 15 + 2, 1)
    Next lRow

    For lRow = 15 To 29
        ThisWorkbook.Worksheets("Sheet1").Range("A17:X31").Copy _
            Destination:=ThisWorkbook.Worksheets("Sheet2").Cells(lRow * 15 + 2, 1)
    Next lRow

End Sub