2015-06-14 78 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

相關問題