Как растянуть Макрос?

Есть Макрос, он копирует значения из нижней строки и вставляет в верхнюю.Как сделать, чтобы после удаления значений 2 строки, он перешёл на 3, 5,7,9,10 таких строк будет 2500 введите сюда описание изображения


Ответы (1 шт):

Автор решения: vikttur

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

Если нужно через строку:

Sub MovingDataUpOneLine_Step()
    Dim i As Long

    For i = 2 To 2500 Step 2
        Range(Cells(i, 1), Cells(i, 15)).Value = Range(Cells(i + 1, 1), Cells(i + 1, 15)).Value
        Cells(i, 17).Value = Cells(i + 1, 17).Value
        
        Range(Cells(i + 1, 1), Cells(i + 1, 15)).ClearContents
        Cells(i + 1, 17).ClearContents
    Next i
End Sub

Смещение всего массива данных на одну строку выше:

Sub MovingDataUpOneLine()
    Range(Cells(2, 1), Cells(2500, 15)).Value = Range(Cells(3, 1), Cells(2501, 15)).Value
    Range(Cells(2, 17), Cells(2500, 17)).Value = Range(Cells(3, 17), Cells(2501, 17)).Value
    
    Range(Cells(2501, 1), Cells(2501, 15)).ClearContents
    Cells(2501, 17).ClearContents
End Sub
→ Ссылка