复制单元格范围,包括边框格式x次

时间:2015-06-14 14:15:35

标签: excel vba excel-vba

我有一张包含包含边框的信息行的表格。我的信息在sheet2的第1行到第3行。我想制作一个宏来将这些信息复制到sheet3上,然后将其粘贴到sheet3上的row1中,然后粘贴到sheet3上的row4中,然后粘贴到sheet2上的row8中,然后在工作表上再进行相同的操作并将其一遍又一遍地复制,直到我拥有了我在sheet1上的单元格C5中指定的正确副本数量。因此,如果我在sheet1上的单元格C5中有 x ,我希望能够将包含边界的信息行粘贴到sheet3 x 次。我对VBA有基本的了解,并查看了其他示例,但无法解决如何执行此操作并保留边框。

我希望这是一个有意义的解释。这可能吗?

谢谢Greg

1 个答案:

答案 0 :(得分:0)

试试这个

注意:

  • 更改工作表2上的复制区域:FIRST_ROW,FIRST_COL,TOTAL_ROWS和TOTAL_COLS

  • Cell C5预计将在Sheet 1

  • 每次运行此宏时,都会删除工作表3

  • 为了让它更短,很难阅读,但如果有兴趣我可以提供详细信息

Option Explicit

Public Sub copyRange()
    Const FIRST_ROW As Long = 1:    Const TOTAL_ROWS As Long = 3
    Const FIRST_COL As Long = 1:    Const TOTAL_COLS As Long = 3

    Dim totalCopies As Long, i As Long, sh As Worksheet

    Application.ScreenUpdating = False

    Sheets("Sheet3").Cells.Delete
    totalCopies = Sheets("Sheet1").Range("C5").Value2

    With Sheets("Sheet2")           'COPY
        .Range( _
                    .Cells(FIRST_ROW, FIRST_COL), _
                    .Cells(FIRST_ROW + TOTAL_ROWS - 1, TOTAL_COLS) _
        ).Copy
    End With

    For i = 1 To totalCopies        'PASTE * value in C5
        Sheets("Sheet3").Cells(((TOTAL_ROWS + 1) * (i - 1)) + 1, FIRST_COL).PasteSpecial
    Next

    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With
End Sub