2016-11-10 2 views
0

У меня есть таблица Excel, в которой у меня есть 2 листа. На первом листе в столбце A у меня есть имена магазинов. Второй рабочий лист является подмножеством рабочего листа 1, а также имеет имена магазинов, однако они находятся в столбце B рабочего листа 2. Мне нужно сравнить каждое имя магазина (столбец A) в листе 1 с каждым именем магазина (столбец B) на листе 2 и извлечь, где 2 пересекаются (имеют одинаковые имена Store). До сих пор, я делал это в VB со следующим:Сравните значения в Excel Sheet1 с значениями в Sheet2

Sub RunMe() 
Dim lRow, x As Long 

Sheets("Sheet1").Select 
lRow = Range("A2").End(xlDown).Row 

For Each cell In Range("B2:B" & lRow) 
    x = 2 
    Do 
     If cell.Value = Sheets("Sheet1").Cells(x, "A").Value Then 
      cell.EntireRow.Copy Sheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 
     End If 
     x = x + 1 
    Loop Until IsEmpty(Sheets("Sheet1").Cells(x, "A")) 
Next 

End Sub 

Как я могу изменить код выше, чтобы сравнить каждый магазин Имя (колонка А) из рабочего листа 1 к каждому магазину Имя (колонка Б) Рабочий лист 2 ?

ответ

1

попробовать это

Sub RunMe() 
    Dim cell1 As Range, cell2 As Range 
    Dim rng1 As Range, rng2 As Range 

    Set rng1 = GetRange("Sheet1",1) 
    Set rng2 = GetRange("Sheet2",2) 

    For Each cell2 In rng2 
     For Each cell1 In rng1 
      If cell1.Value = cell2.Value Then 
       cell2.EntireRow.Copy Worksheets("Sheet3").Range("A" & Rows.Count).End(xlUp).Offset(1, 0) 
      End If 
     Next 
    Next 
End Sub 

Function GetRange(shtName As String, colIndex as Long) As Range 
    With Worksheets(shtName) 
     Set GetRange = .Range(.Cells(2, colIndex), .Cells(.Rows.Count, colIndex).End(xlUp)) 
    End With 
End Function 
+0

Это решение не появляется на работе. Он, как представляется, не учитывает, что WorkSheet2 имеет имена Store, начинающиеся в столбце B2. Я изменил решение и до сих пор не копировал данные в Worksheet3. – dionysus

+0

См. Отредактированный код – user3598756

+0

@dionysus, вы прошли через него? – user3598756