2015-06-14 76 views
0

我有一张包含包含边框的信息行的表单。我的信息在sheet2的第1到第3行。我想制作一个宏将这些信息复制到sheet3上,然后将它粘贴到sheet3上的row1中,然后粘贴到sheet3上的row4上,然后粘贴到sheet2上的row8上,然后在表单上进一步做下去,并一遍又一遍地复制,直到我拥有我已经在sheet1的单元格C5中指定了正确数量的副本。所以,如果我有x在sheet1的单元格C5我想能够粘贴包含寄宿生信息行到sheet3 x次。我对VBA有一个基本的了解,并且已经看过其他的例子,但是不知道如何做到这一点并保留边界。包含边框格式的单元格复制范围x次数

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

感谢格雷格

+0

这是可能的。 AFAIK,您需要执行'.Copy'和'.Paste'或'.PasteSpecial'方法。如果有人知道另一种方式,我也很高兴听到它。 – ZygD

+0

你有什么图纸/哪一行数据要复制的图案/订单?你已经提到过''在'sheet3'上的''row1'',然后在'sheet3'上的'row4'上,然后在'sheet2'上的'row8'上,然后沿着表单进一步下去并进一步复制。 – nirmalraj17

回答

0

试试这个

注:

  • 更改复印区域上表2:FIRST_ROW,FIRST_COL,TOTAL_ROWS和TOTAL_COLS

  • 细胞C5有望在工作表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 
+0

谢谢你的回复保罗。我会在第二天左右看这个,以了解代码正在做什么,并回答您一些问题,以使我能够理解代码,这是一个很大的谢意。 – Greg

相关问题