Member 13733304 Ответов: 1

Vba ищет совпадение столбцов на 2 листах и вставляет строку из листа 2 в лист 1.


Привет, я хотел бы спросить.

Моя ситуация такова
Лист 1 включает значение из столбца а в Z.
Лист 5 включает значение из столбца а в Z.

Оба листа, столбец Z имеют общее значение.

Я хотел бы использовать код VBA, который работает в
1. сопоставьте столбец Z (лист 5) со столбцом Z листа 1.
2. если совпадение найдено, то скопируйте, вставьте строку с листа 5(*это совпадение) на лист 1 соответствующей строки.

Пожалуйста, помогите!

Что я уже пробовал:

С.Диапазон("Z1:Z" & LastRow)
.Поле автофильтра:=1, Criteria1:="=*" & strSearch & "*"
.Offset(1,0).SpecialCells(xlCellTypeVisible).Ячейки.Копировать
Листы("Sheet5").активировать
DestinationRange.PasteSpecial
Конец С

1 Ответов

Рейтинг:
2

Bryian Tan

Основываясь на том, что вы упомянули в этом посте, вот как должен выглядеть код. код нужен для того чтобы
1. Узнайте, сколько строк нужно сравнить
2. Зациклите каждую строку, сравните значение столбца Z в листах 5 и 1
3. Если матч, скопированный ячеек В:Г от Sheet5 на "Лист1"

Протестировано на Excel 2016.

Sub CP_CopyPasteRow()
    Dim lastrow As Long

    'Disable Alert (Warning) Messages in Excel
    Application.DisplayAlerts = False
    
    With Sheets("Sheet5")
    'get the last row index with data
        lastrow = .Cells(.Rows.Count, "Z").End(xlUp).Row
        
        For r = 1 To lastrow
            'loop each to matzh Z column, if match copy A:Y to Sheet 1
            If Worksheets("Sheet1").Cells(r, Range("Z" & 1).Column).Value = .Cells(r, Range("Z" & 1).Column).Value Then
                .Rows(r).Copy
                Worksheets("Sheet1").Range("A" & r & ":Y" & r).PasteSpecial xlPasteValues
            End If
        Next r
        
    End With

'enable alert
   Application.DisplayAlerts = True
End Sub