VBA Excel скопировать выше ячейки при пересечении

Мне нужно, чтобы Excel скопировал определенный диапазон в строку, которая в данный момент выбрана.

Например, у меня есть такие данные:

И когда я выбираю A3, мне нужно автоматически скопировать Excel. Диапазон C2:F2 до C3: F3, вот так

И так далее... Если я выберу A4, мне нужно скопировать C3: F3 в C4:F4...

Как это возможно, пожалуйста?

1 ответ

Решение

Для меня это больше похоже на автозаполнение. Вы должны вероятно заполнить вниз от C2:F2,

Range.AutoFill

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Target.Row = 1 And Not Intersect(Target, Range("A2", Columns("A"))) Is Nothing Then
        With Target.Offset(-1).EntireRow.Range("C1:F1")
            .AutoFill Destination:=.Resize(2), Type:=xlFillDefault
        End With
    End If
End Sub

Range.Copy

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Target.Row = 1 And Not Intersect(Target, Range("A2", Columns("A"))) Is Nothing Then
        With Target.EntireRow.Range("C1:F1")
            .Offset(-1).Copy Destination:=.Cells
        End With
    End If
End Sub
Другие вопросы по тегам