2013-03-21 2 views
0

Во-первых, я полный новичок в VBA. Я пытаюсь скопировать диапазон в столбцах A и B (динамические строки) «n» количество раз, когда я указываю значение n в ячейке «c2» на другой лист в той же книге.копирование диапазона 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'? –

+1

Убедитесь, что n не превышает ограничение по размеру целых чисел, так как вы объявили i как целое число, которое может вызвать проблему. – datatoo

+0

Моя интерпретация вашей ошибки прерывания (может быть, я ошибаюсь) Замените '//' на ' '' –

ответ

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 
Смежные вопросы