简体   繁体   English

复制范围n次,其中在单元格中指定了n

[英]copying a range n number of times where n is specified in a cell

Firstly i am a complete novice in VBA. 首先,我是VBA的完全新手。 I am trying to copy a range in column A and B(dynamic rows) "n" number of times where I specify the value of n in cell "c2" to another sheet in the same workbook. 我正在尝试将A列和B列(动态行)“ n”中的一个范围复制到我在同一工作簿中的另一张工作表中指定“ c2”单元格中的n值的次数。

Column A   Column B

DDDDDD      d345g
THFGJJ      th567
JKHNGF      thgf4
UJHG67      uj768
tkm78y      y7865

here is what i tried but it is giving me a break error. 这是我尝试过的方法,但它给我一个中断错误。

Sub rangecopy()

    Application.ScreenUpdating = False
    Dim rangeini As Long
    Dim i As Integer
    rangeini = Sheets("sheet1").[a10000].End(xlUp).Row+1 //range of data to copy
    n = Sheets("sheet1").range("c2")//number of times to be copied
    For i = 1 To n

        rangeini.Copy
        Sheets("sheet2").range("A2").PasteSpecial//data to be pasted here

    Next i
    Application.ScreenUpdating = True 

End Sub    

I am in a fix and need it asap. 我已解决,需要尽快解决。 Any help is really appreciated. 任何帮助都非常感谢。

Please write a simple code so a novice can understand and learn from that. 请编写简单的代码,以便新手可以理解和学习。

This just does a simple copy/paste 这只是做一个简单的复制/粘贴

Sub rangecopy()

    Dim i As Integer, n As Integer
    Dim intHowmany As Integer


    n = Sheets("sheet1").Range("c2") 'number of times to be copied

    Range("a2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, (Selection.Offset(0, 1))).Select

    Selection.Copy

    intHowmany = Selection.Rows.Count

    ActiveWorkbook.Worksheets(2).Select
    Range("a2").Select


    For i = 1 To n

        ActiveSheet.Paste
        ActiveCell.Offset(intHowmany, 0).Select


    Next i

End Sub
Sub rangecopy() 

    Application.ScreenUpdating = False 
    Dim rangeini As range  
    Dim i As Integer, n as integer
    Set rangeini = Sheets("sheet1").range("a2").resize(Sheets("sheet1").[a2].End(xlDown).Row - 1, 2) 'range of data to copy 
    n = Sheets("sheet1").range("c2") 'number of times to be copied

    Sheets("sheet2").[a2] = rangeini 'paste the first one in "a2"
    For i = 2 To n

        Sheets("sheet2").[a1].Offset(Sheets("sheet2").[a2].End(xlDown).row) = rangeini  'data to be pasted at the end 

    Next i 
    Application.ScreenUpdating = True

End Sub

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM