Мне нужен сценарий VBA для копирования и вставки строк в Excel с определенным шагом

Мне нужен макрос Excel, который будет копировать каждую шестую строку определенного листа, начиная с седьмой строки, и вставлять значения этих строк (без смещения или удаления скопированных строк, содержащих формулы) в каждую шестую строку того же листа. рабочий лист, начиная с пятой строки (Соответственно скопируйте значения формулы седьмой строки и вставьте в пятую, скопируйте 13 и вставьте в 11, и так до последней значимой строки). Я вообще не разбираюсь в программировании, и ни нейросети, ни мои попытки не дали желаемого результата. Прошу вас о помощи, друзья.

Sub Copy_And_Insert_Rows()
    Dim i As Integer
    Dim lastRow As Integer

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 6 To lastRow Step 6
        Rows(i).Copy
        Rows(i - 2).Insert Shift:=xlDown
    Next i

    Application.CutCopyMode = False
End Sub

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

По просьбе комментатора уточняю свои требования к макросу. Я сделал следующий код для трех строк:

Sub Copy_And_Insert_Rows()
Range("d7:crg7").Copy
Range("d5:crg5").PasteSpecial xlPasteValues
Range("d13:crg13").Copy
Range("d11:crg11").PasteSpecial xlPasteValues
Range("d19:crg19").Copy
Range("d17:crg17").PasteSpecial xlPasteValues
End Sub

По сути мне нужно то же самое, но на несколько тысяч строк, что требует более сложного кода.

Вам нужно будет уточнить, чего вы хотите. Вы говорите о копировании каждой шестой строки и вставке ее, но не упоминаете, где. Возможно, вам будет полезно показать нам примеры данных, ожидаемый результат и объяснить, почему предоставленный вами код не соответствует ему.

cybernetic.nomad 07.05.2024 16:57

Вам нужно вставить новые строки или просто скопировать содержимое в существующие строки?

Tim Williams 07.05.2024 18:11

Или скопировать на другой лист или книгу?

cybernetic.nomad 07.05.2024 18:13

Я добавил новый фрагмент кода, чтобы было понятнее, что мне нужно. Да, я хочу скопировать данные в уже существующие строки.

федор крючков 07.05.2024 18:16
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
4
60
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Попробуйте этот код:

Sub Copy_Rows()
    Dim i As Long
    Dim lastRow As Long

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 7 To lastRow Step 6
        Rows(i).Columns("B:CRG").Copy
        Rows(i - 2).Columns("B:CRG").PasteSpecial xlPasteValues
    Next i

    Application.CutCopyMode = False
End Sub

Вы можете ограничить копирование/вставку столбцами, которые вам действительно нужны.

Спасибо большое, это то, что я хотел. Можно ли не трогать имена строк (столбец А) или нужно искать обходные пути?

федор крючков 07.05.2024 19:08

Я добавил обновление.

MGonet 07.05.2024 19:26

Благодаря решению MGonet я нашел решение для своего комментария к его решению. Извините за мой английский :)

Sub next_turn_vnutr_rinok()
Dim i As Long
Dim lastRow As Long

lastRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 7 To lastRow Step 6
    Rows(i).Copy
    Rows(i - 2).PasteSpecial xlPasteValues
    Cells(i - 3, 1).Copy
    Cells(i - 2, 2).PasteSpecial xlPasteValues
Next i

Application.CutCopyMode = False
End Sub

Другие вопросы по теме