Вставка в следующую пустую строку - PullRequest
0 голосов
/ 16 июня 2020

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

enter image description here

    Sub CopyRows()

Dim Found As Range
Dim ANextFreeCell As Range
Dim BNextFreeCell As Range
Dim wkDest As Worksheet

Set wsDest = Workbooks("sample_bills (version 1).xlsx").Worksheets("sample_bills")
Set Found = Cells.Find(What:="Description", LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
    If Found Is Nothing Then
    MsgBox "ERROR"
    Else
    i = Found.Row
    j = Found.Column

    End If

    Do
    Set ANextFreeCell = wsDest.Cells(Rows.Count, "C").End(xlUp).Offset(RowOffset:=1)
    Set BNextFreeCell = wsDest.Cells(Rows.Count, "D").End(xlUp).Offset(RowOffset:=1)
    ANextFreeCell = Cells(i + 1, j)
    BNextFreeCell = Cells(i + 1, j + 1)
    i = i + 1
    Loop Until IsEmpty(Cells(i, j)) And IsEmpty(Cells(i, j + 1))


End Sub

Любая помощь будет принята с благодарностью :)

1 Ответ

0 голосов
/ 16 июня 2020

Чтобы найти последнюю строку для нескольких столбцов, используйте Range("C:D").Find, добавьте 1, чтобы получить следующую пустую строку.

NextEmptyRow = ActiveSheet.Range("C:D").Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row + 1

, а затем вставьте, используя ...

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