Сравните ячейки, а затем вывод на основе значения - PullRequest
0 голосов
/ 28 января 2019

Мне нужно сравнить два диапазона на разных листах в одной рабочей книге.

лист 1
enter image description here

лист 2
enter image description here

Если они совпадают, скопируйте значение из листа 1 в лист 2, пять ячеек справа от сравниваемого значения.

Sub compare_paste()

    Dim cell, cell2, revenue As Range.Value
    Dim wbk As Workbook
    Dim sheet1, sheet2 As Worksheet
    Dim temp, lastName As String

    Set wbk = ThisWorkbook

    Set sheet1 = wbk.Sheets("Sheet1")
    Set sheet2 = wbk.Sheets("Sheet2")

    For Each cell In sheet1.Range("a1:a" & Range("a1").End(xlDown).Row)
        lastName = cell.Value
        Set revenue = cell.Offset(0, 7)
        For Each cell2 In sheet2.Range("a:a" & Range("a").End(xlDown).Row)
            If lastName = cell2.Range Then
                revenue.Value = cell2.Offset(0, 7).Value
            End If
        Next cell2

    Next cell

End Sub

1 Ответ

0 голосов
/ 29 января 2019

Я верю, что это то, что вы собираетесь.Это можно сделать другими способами, но я просто просматриваю ваш метод.

Обратите внимание на важные различия между тем, как мы объявляли переменные.Кроме того, ваш второй набор диапазонов был неверным.Наконец, это было обновлено, чтобы определить последнюю строку из нижней части диапазона вместо верхней.

Sub Compare()

Dim WS1 As Worksheet: Set WS1 = ThisWorkbook.Sheets("Sheet1")
Dim WS2 As Worksheet: Set WS2 = ThisWorkbook.Sheets("SHeet2")

Dim LR1 As Long, LR2 As Long, WS1_Cell As Range, WS2_Cell As Range

LR1 = WS1.Range("A" & WS1.Rows.Count).End(xlUp).Row
LR2 = WS2.Range("A" & WS2.Rows.Count).End(xlUp).Row

For Each WS1_Cell In WS1.Range("A1:A" & LR1)
    For Each WS2_Cell In WS2.Range("A1:A" & LR2)
        If WS1_Cell = WS2_Cell Then
            WS1_Cell.Offset(, 7).Value = WS2_Cell.Offset(, 7).Value
        End If
    Next WS2_Cell
Next WS1_Cell

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