У меня есть созданная пользовательская форма, которая сначала спрашивает, сколько строк я хотел бы вставить.Следующая часть пользовательской формы спрашивает, какие значения я хотел бы видеть в столбцах 1 и 32 каждой вновь созданной строки (я настроил ее так, чтобы одновременно можно было создать максимум 6 новых строк).Мои данные содержат 45 столбцов, и единственные данные, которые я хочу изменить во вновь созданных строках, - это данные в двух столбцах, которые я сказал ранее (1 и 32).Я хочу, чтобы данные из всех других столбцов из исходной строки были скопированы в каждую новую строку.Моя проблема в том, что я не могу понять, как написать код, который будет делать это так, как я хочу.Например, если я отвечу пользовательской форме, что хочу добавить 3 строки ниже активной в данный момент ячейки, он спросит меня, какие значения я хочу ввести для столбцов 1 и 32 для каждой из этих новых строк.Поэтому я хотел бы ввести что-то вроде этого:
Первая новая строка
Столбец 1: 8/17/2019
Столбец 32: 400
Вторая новая строка
Столбец 1: 8/10/2019
Столбец 32: 500
Третья новая строка
Столбец 1: 03.08.2009
Колонка 32: 600
Я пробовал много разных кодов, но я действительно только понял, как написать его так, чтобы он вставлял одну строку ниже активной ячейки, а она была абсолютно пустой, я нене знает, как его запрограммировать, чтобы он вводил значения, выбранные мной для столбцов 1 и 32, и копировал все остальные данные из исходной строки.Я уже выяснил код кнопки сброса и отмены на своей пользовательской форме, теперь меня интересует только написание этого кода для кнопки «ОК».
Private Sub CancelButton_Click()
Unload Me
End Sub
Private Sub ClearButton_Click()
Call UserForm_Initialize
End Sub
Private Sub OKButton_Click()
Dim lRow As Long
Dim lRsp As Long
On Error Resume Next
lRow = Selection.Row()
lRsp = MsgBox("Insert New row above " & lRow & "?", _
vbQuestion + vbYesNo)
If lRsp <> vbYes Then Exit Sub
Rows(lRow).Select
Selection.Copy
Rows(lRow + 1).Select
Selection.Insert Shift:=xlDown
Application.CutCopyMode = False
Rows(lRow).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone
End Sub
Private Sub UserForm_Initialize()
AddRowsTextBox.Value = ""
Date1TextBox.Value = ""
Date2TextBox.Value = ""
Date3TextBox.Value = ""
Date4TextBox.Value = ""
Date5TextBox.Value = ""
Date6TextBox.Value = ""
Qty1TextBox.Value = ""
Qty2TextBox.Value = ""
Qty3TextBox.Value = ""
Qty4TextBox.Value = ""
Qty5TextBox.Value = ""
Qty6TextBox.Value = ""
End Sub