Excel VBA Макросы: Копирование выделенной строки и вставка скопированной строки под выделенной строкой.

Автор Полёт, 03 июня 2020, 22:16

Полёт

Нужна чудо-кнопка, по нажатию которой копируется выделенная строка и вставляется ниже.
При этом пара ячеек во время копирования должны измениться.

В примере 4ая строка копируется в 5ую и меняется значение в столбцах B и С, остальные столбцы не изменяются.

После запуска макроса, должен появится запрос на ввод информации для столбца B, ввести нужно просто число.

[вложение удалено администратором]

Администратор

Макрос вставляет указанные юзером данные в столбцы B и C.

Макрос
Sub Макрос()
   
    Dim НовСтрока As Range, ДанныеДляВставки As String
   
   
    ' Отключение монитора, чтобы не мерцало.
    Application.ScreenUpdating = False
   
    ' Юзер указывает данные, которые надо записать в новую строку, в столбец B.
    Application.ScreenUpdating = True
    ДанныеДляВставки = InputBox("ДАННЫЕ ДЛЯ ВСТАВКИ В СТОЛБЕЦ ""B"":")
    If ДанныеДляВставки = "" Then
        Exit Sub
    End If
    Application.ScreenUpdating = False
   
    ' Выход из режима копирования на случай, если юзер скопировал строку.
        ' Иначе макрос может сделать не так, как задумано.
    Application.CutCopyMode = False
   
    ' Вставка под выделенной строкой пустой строки.
    Selection.Offset(1).Insert
   
    ' Присваиваем имя вставленной строке
        ' (может быть так будет удобнее читать и писать код).
    Set НовСтрока = Selection.Offset(1)
   
    ' Копирование выделенной строки вниз.
    Selection.Copy Destination:=НовСтрока
   
    ' Запись фраз во вставленную строку.
    НовСтрока.Cells(1, "B").Value = ДанныеДляВставки
    НовСтрока.Cells(1, "C").Value = ДанныеДляВставки
   
End Sub
[свернуть]