Копировать новые строки в таблицу Excel на основе поиска по значению одной ячейки - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть один лист Excel, которым я управляю, к которому мне нужно добавить строки, если новые строки были добавлены в другой лист Excel, которым я не управляю.

Проще говоря, я сижу с листом Excel, который выглядит следующим образом:

my excel sheet

И мне нужно найти другой лист Excel (см. Изображение 2) ) для вновь добавленных строк на основе столбца кода документа, который будет выглядеть следующим образом:

The

И в идеале я хотел бы, чтобы мой лист Excel в конечном итоге выглядел так, как если бы были новые строки добавлено, если они содержали код документа, ранее не указанный в моем листе Excel:

My updated excel sheet

Ранее я уже встречал ответы на подобные вопросы, но только для более простых поисков, например на основе фиксированных значений в ячейке. например, как да / нет, и мне не совсем удалось пересмотреть эти ответы в моей ситуации. ,

1 Ответ

0 голосов
/ 13 февраля 2020

Вы можете попробовать:

Sub test()

    Dim wsAll As Worksheet, wsNew As Worksheet
    Dim LastRowNew As Long, LastrowAll As Long, i As Long
    Dim rngFound As Range

    With ThisWorkbook

        'The sheet with all data
        Set wsAll = .Worksheets("All_Imports")
        'The sheet with new data
        Set wsNew = .Worksheets("New_Imports")

    End With

    With wsNew

        LastRowNew = .Cells(.Rows.Count, "A").End(xlUp).Row

        For i = 2 To LastRowNew

            Set rngFound = wsAll.Columns(1).Find(.Range("A" & i).Value, LookIn:=xlValues, LookAt:=xlWhole)

            If rngFound Is Nothing Then

                With wsAll
                    LastrowAll = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
                    .Range("A" & LastrowAll).Value = wsNew.Range("A" & i).Value
                    .Range("B" & LastrowAll).Value = wsNew.Range("B" & i).Value
                End With

            End If

        Next i

    End With

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