Я не уверен, что понял вашу точку зрения, но, как я понял, вам нужно копировать (а не умножать) свой диапазон данных определенное количество раз. Я не могу видеть положение вашей ячейки, так как оно вырезано из вашего скриншота.
В моем примере ваш номер 3 находится в ячейке ThisWorkbook.Worksheets("Sheet1").Range("M2").Value
. Мои данные находятся в A3:B17
, поэтому мы указываем начальную ячейку как Set StartCell = Range("A3")
Вот код, который скопирует ваш диапазон определенное количество раз:
Sub CommandButton()
Dim NumberMe As Integer
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Dim i As Long
Set sht = ThisWorkbook.Worksheets("Sheet1")
Set StartCell = Range("A3")
NumberMe = ThisWorkbook.Worksheets("Sheet1").Range("M2").Value
'Find Last Row and Column
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
'Copy Range
sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Copy
For i = 1 To NumberMe
sht.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Next
End Sub
Вы можете редактировать это в соответствии с вашими потребностями.
EDIT:
Если вам нужно выбрать диапазон до столбца номер . Попробуйте это (замените sht.Range(StartCell, sht.Cells(LastRow, LastColumn)).Copy
) на:
sht.Range(StartCell, sht.Cells(LastRow, 2)).Copy
В этом случае номер столбца 2. Тогда вам не нужны LastColumn = sht.Cells(StartCell.Row, sht.Columns.Count).End(xlToLeft).Column
и Dim LastColumn
- их можно удалить из кода.
Окончательный результат будет выглядеть так:
Sub CommandButton()
Dim NumberMe As Integer
Dim LastRow As Long
Dim StartCell As Range
Dim i As Long
Set sht = ThisWorkbook.Worksheets("Sheet1")
Set StartCell = Range("A3")
NumberMe = ThisWorkbook.Worksheets("Sheet1").Range("M2").Value
'Find Last Row
LastRow = sht.Cells(sht.Rows.Count, StartCell.Column).End(xlUp).Row
'Copy Range
sht.Range(StartCell, sht.Cells(LastRow, 2)).Copy
For i = 1 To NumberMe
sht.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Next
End Sub