Страницы: 1
RSS
Макросом копировать и вставить строки на двух листах
 
Здравствуйте подскажите пожалуйста. Мне нужно копировать 4 строки на листе "Яблоко" и "Груша" (должен быть скрыт). Ссылки относительные. То есть если я встаю на лист "Яблоко" встаю на 20 строку то с "20:23", если с 27 строки, то "27:30", жму на макрос и он должен скопировать строки с "20:23", одновременно должны копироваться те же строки и на листе "Груша". И вставить с нужной мне строки.  
 
Цитата
Deniska3 написал:
И вставить с нужной мне строки.
Тоесть, тоже вы укажите
Цитата
Deniska3 написал:
встаю на
куда именно?
 
MikeVol, да Вы правильно поняли,  я сам уже указываю с какой строки вставлять.
 
Deniska3, Смотрю никто вам не хочет отвечать...
Код
Option Explicit

Sub Копировать4Строки()
    Dim wsGrusha    As Worksheet
    Set wsGrusha = ThisWorkbook.Worksheets("Груша")

    Dim startRow    As Long
    startRow = ActiveCell.Row

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        .Calculation = xlCalculationManual

        With ThisWorkbook.Worksheets("Яблоко")

            If ActiveSheet.Name <> .Name Then
                MsgBox "Макрос запускается только с листа 'Яблоко'.", vbExclamation
                Application.Calculation = xlCalculationAutomatic
                Application.DisplayAlerts = True
                Application.ScreenUpdating = True
                Exit Sub
            End If

            Dim targetRow As Long
            targetRow = Application.InputBox("Введите номер строки, куда вставить скопированные строки:", "Строка вставки", Type:=1)
            If targetRow < 1 Then Exit Sub

            .Rows(startRow & ":" & startRow + 3).Copy
            .Rows(targetRow).Insert Shift:=xlDown

            wsGrusha.Rows(startRow & ":" & startRow + 3).Copy
            wsGrusha.Rows(targetRow).Insert Shift:=xlDown
        End With

        .CutCopyMode = False
        .Calculation = xlCalculationAutomatic
        .DisplayAlerts = True
        .ScreenUpdating = True
    End With

    MsgBox "Готово: строки " & startRow & ":" & (startRow + 3) & " скопированы и вставлены на строку " & targetRow & " на обоих листах.", vbInformation
End Sub
Изменено: MikeVol - 13.06.2025 13:53:37
 
MikeVol, а можно вставку заменить на"Ctrl+V", то есть скопировал, а вставить выбрал указателем мышки строку и"Ctrl+V"? Или когда вымираешь нужную строку, то чтобы при выборе вставлялась не в таком формате "=$A$28", а в этом "28"?
 
Цитата
Deniska3 написал:
чтобы при выборе вставлялась не в таком формате "=$A$28",
А где это так вставляется? И я вообще у вас в файле не видел
Цитата
Deniska3 написал:
Ссылки относительные
Зря я тоже не прошёл мимо вашей темы...Хотелка у вас какая-та непонятная...
 
MikeVol, как-бы просто спросил, уже нашел другой выход этого решения. Вас спросил ответа на вопрос не услышал, только упрек о котором не спрашивали. Спасибо.

Изменено: Deniska3 - 14.06.2025 09:58:55
 
Deniska3, у Вас на всех листах, в которых нужно производить копирование/вставку одинаковые значения? Просто если Вы хотите разделить события копирования и вставки по разным макросам, то одномоментно можно скопировать данные только с одного листа и по нажатию 'Ctrl+v' они и будут вставлены во ВСЕ листы
Согласие есть продукт при полном непротивлении сторон
 
Вот вариант с перехватом нажатия клавиш Ctr+c (копирование) и Ctrl+v(вставка)
Скрытый текст


Что-бы конструкция заработала нужно вставить макросы куда нужно, сохранить книгу, закрыть и снова открыть
Согласие есть продукт при полном непротивлении сторон
 
Sanja, очень большое спасибо Вам за помощь, то что нужно!
Страницы: 1
Читают тему
Наверх