复制范围n次,其中n在单元格中指定
问题描述:
首先,我是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
我正在修复中,需要尽快解决。任何帮助真的很感激。
请写一个简单的代码,以便新手能够理解并从中学习。
答
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
答
这只是做一个简单的复制/粘贴
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
你说的'休息Error'是什么意思? – 2013-03-21 19:24:11
请确保n不超过整数的大小限制,因为您已将i声明为可能导致问题的整数 – datatoo 2013-03-21 19:49:10
我对“Break Error”(我可能错了)的解释将'//'替换为' '' – 2013-03-21 20:16:35