Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Sheets("Вывод").Select
n = Sheets("ввод").Cells(9, 1).Value ' Берется значение непустых строк с листа "ввод"
x = 18 ' Номер строки расположения 1 строчки таблицы
Do While I < n
Sheets("Вывод").Range("A19").EntireRow.Insert
I = I + 1' Добавление нужного кол-ва строк после 1 позиции таблицы
Loop
lr = Sheets("Вывод").Cells(Rows.Count, 1).End(xlUp).Row ' Вот это понятия не имею что делает)))
Sheets("Вывод").Select
Sheets("Вывод").Range("A18:O18").Select ' Выделение 1 позиции таблицы
Selection.AutoFill Destination:=Sheets("Вывод").Range("A18:O" & x + n), Type:=xlFillDefault ' "протягивание" 1 строчки на нужное кол-во строк.
Application.ScreenUpdating = True
End Sub
Суть у него следующая. Есть Лист "Ввод" там заносятся данные для расчета стоимости. Например на листе 5 заполненных строк. После нажатия на кнопку вид переключается на лист "Вывод" там под 1 позицией добавляется 4 (5 - 1, первая строка всегда заполнена) строки и потом 1 строка таблицы выделяется и перетаскивается с автозаполнением.
Однако, в случае если после 1 нажатия кнопки на листе "ввод" добавится позиция. То при повторном нажатии произойдет полный цикл - то есть к уже добавленным 4 строкам, добавиться еще 5, и данные задублируюся.
Идея проста. Сделать "зачистку" таблицы на листе "Вывод" до первой позиции. перед выполнением основного кода. Но вот как это сделать моих знаний тупо не хватит)))