Скопируйте значения ячеек из одного листа книг Excel в другой, когда значение ячейки совпадает в той же строке

У меня есть две книги Excel, скажем, wb01 и wb02. Предположим, у них есть только один лист, sh01 и sh02 соответственно.

Мне нужно синхронизировать листы (sh01 и sh02), скопировав значения ячеек (столбцы имени и фамилии) из sh01 в sh02, когда столбец «Id» совпадает.

Пример

sh01 в wb01

Id | name     | surname  | Dept
10 | John     | McCoy    | Logistics
21 | Liam     | Alloy    | Administration
40 | Peter    | Gregor   | Finance
42 | Albert   | Kein     | Business
50 | Kelly    | Braxton  | Logistics
60 | Isabella | O'Neill  | Finance

sh02 в wb02

Id | name   | surname   | ext.
10 | David  | McCoy     | 1004
23 | Bren   | Summer    | 1230
40 | George | Brown     | 2400
42 | Astrid | Anderson  | 3312
50 | Kelly  | Braxton   | 1139
51 | Evelyn | Connor    | 4532

Мне не нужно копировать эти значения ячеек из sh02 в sh01, только из sh01 в sh02. Кроме того, если значение ячейки «Id» существует в wb01, но отсутствует в sh2, значения имени и фамилии ячеек должны быть скопированы в sh02 как новая строка, а остальные поля должны оставаться пустыми/пустыми в sh02.

Принимая во внимание два приведенных выше листа, после процесса копирования sh02 должен быть следующим:

Id | name     | surname   | ext.
10 | John     | McCoy     | 1004
21 | Liam     | Alloy     | 
23 | Bren     | Summer    | 1230
40 | Peter    | Gregor    | 2400
42 | Albert   | Kein      | 3312
50 | Kelly    | Braxton   | 1139
51 | Evelyn   | Connor    | 4532
60 | Isabella | O'Neill   | 

Этот процесс копирования должен выполняться по запросу, я имею в виду, когда пользователь нажимает кнопку из sh02 в wb02. При нажатии кнопки будет выполнен макрос в sh02, чтобы начать процесс копирования с sh01 на sh02.

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

Ответы 1

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

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

Sub CopyValue

Dim Wb1 As Workbook, wb2 As Workbook, lastrow As Long, lastrow2 As Long, counter As Integer

counter = 0
Set wb1 = Workbooks("wb01")
Set wb2 = Workbooks("wb02")
lastrow = wb1.Range("A" & .Rows.Count).End(xlUp).Row
lastrow2 = wb2.Range("A" & .Rows.Count).End(xlUp).Row

For x = 2 To lastrow
    For y = 2 To lastrow2
    If wb1.Sheets("abc").Cells(x,1).Value = wb2.Sheets("def").Cells(y,1).Value Then
        wb2.Sheets("def").Cells(y,2).Value =    wb1.Sheets("abc").Cells(x,2).Value
        wb2.Sheets("def").Cells(y,3).Value =    wb1.Sheets("abc").Cells(x,3).Value
    Else
        counter= counter +1
        wb2.Sheets("def").Cells(lastrow+counter,1).Value = wb1.sheets("abc").Cells(x,1).Value
        wb2.Sheets("def").Cells(lastrow+counter,2).Value = wb1.sheets("abc").Cells(x,2).Value
        wb2.Sheets("def").Cells(lastrow+counter,3).Value = wb1.sheets("abc").Cells(x,3).Value
    End If
Next y
Next x
End Sub

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