2013-03-21 52 views
0

首先,我是VBA中的一名完全新手。 我试图复制列A和B(动态行)“n”的次数,其中我指定单元格“c2”中n的值到同一工作簿中的另一个工作表中的范围。复制范围n次,其中n在单元格中指定

Column A Column B 

DDDDDD  d345g 
THFGJJ  th567 
JKHNGF  thgf4 
UJHG67  uj768 
tkm78y  y7865 

这是我的尝试,但它给了我一个休息的错误。

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  

我正在修复中,需要尽快解决。任何帮助真的很感激。

请写一个简单的代码,以便新手能够理解并从中学习。

+1

你说的'休息Error'是什么意思? – 2013-03-21 19:24:11

+1

请确保n不超过整数的大小限制,因为您已将i声明为可能导致问题的整数 – datatoo 2013-03-21 19:49:10

+0

我对“Break Error”(我可能错了)的解释将'//'替换为' '' – 2013-03-21 20:16:35

回答

0
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 
1

这只是做一个简单的复制/粘贴

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