Вставка нескольких строк в Active Cell с использованием VBA в Excel - PullRequest
0 голосов
/ 28 августа 2018

Я пишу макрос, который проходит через каждую строку (некоторые строки содержат больше столбцов, чем другие), подсчитывает количество столбцов и вставляет то же число, что и пустые ячейки ниже выбранной строки. Цель состоит в том, чтобы в конечном итоге скопировать и вставить данные в один столбец.

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

    rowCount = ActiveSheet.Cells(rows.Count, 5).End(xlUp).Row
    ActiveSheet.Range("E1:E" & rowCount).Select
    For c = 1 To rowCount
        columnCount = ActiveSheet.Cells(c, 
        Columns.Count).End(xlToLeft).Column - 5
            If columnCount > 0 Then
                Let CopyRange = "E" & c & ":" & "E" & (c + columnCount - 1)
                ActiveSheet.Range(CopyRange).EntireRow.Insert Shift:=xlDown
            End If
        rowCount = ActiveSheet.Cells(rows.Count, 5).End(xlUp).Row
        c = c + columnCount
    Next c

1 Ответ

0 голосов
/ 28 августа 2018

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

rowCount = ActiveSheet.Cells(rows.Count, 5).End(xlUp).Row
For c = rowCount to 1 step -1
    columnCount = ActiveSheet.Cells(c, Columns.Count).End(xlToLeft).Column - 5
        If columnCount > 0 Then
            Set CopyRange = "E" & c + 1 & ":" & "E" & (c + columnCount)
            ActiveSheet.Range(CopyRange).EntireRow.Insert Shift:=xlDown
        End If
Next c

Примечание: это не проверено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...