Как сделать макрос цикла Excel, чтобы вырезать 2-ю строку и вставить в 1-ю строку - PullRequest
0 голосов
/ 08 февраля 2019

Я очень новичок в Excel VBA и у меня есть отчет с около 200 записями, однако каждая запись разбита на две строки, так что первые 8 столбцов в строке 1 представляют собой первую половину данных, а первые 8 столбцов -строка 2 - вторая половина.Я хочу взять 8 столбцов в строке 2, вырезать и вставить их в конец 1-й строки, удалить пустую строку и продолжить до конца отчета.

Я использовал макрос записи, чтобы получить код, который обрезает диапазон «A2: H2» и вставляет его в «I1», а затем повторил это для следующей записи.Я знаю, что это не эффективно, потому что это не в цикле, и это очень долго.Любая помощь будет принята с благодарностью.Вот мой пример кода:

    Range("A2:H2").Select
    Selection.Cut
    Range("I1").Select
    ActiveSheet.Paste

    Range("A4:H4").Select
    Selection.Cut
    Range("I3").Select
    ActiveSheet.Paste

    Range("A6:H6").Select
    Selection.Cut
    Range("I5").Select
    ActiveSheet.Paste

    Range("A8:H8").Select
    Selection.Cut
    Range("I7").Select
    ActiveSheet.Paste

    Range("2:2,4:4,6:6,8:8").Select
    Selection.Delete Shift:=xlUp

Результатом будут данные из A1: P1 и только 200 строк данных вместо 400. Спасибо!

1 Ответ

0 голосов
/ 08 февраля 2019

Это цикл, который заменяет ваш код:

Dim r As Long, toprow As Long, bottomrow As Long
toprow = 2
bottomrow = 8
For r = toprow To bottomrow Step 2
    Range("A" & r & ":H" & r).Cut Range("I" & r - 1)
Next

Если вы хотите удалить интервал, внутренний цикл должен быть

Range("A" & r & ":H" & r).Cut Range("I" & r / 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...