2016-11-10 104 views
0

我有一個Excel電子表格,其中有2個工作表。在A列的第一張工作表中,我有一個商店名稱。第二個工作表是工作表1的一個子集,並且還有存儲名稱,但是它們位於工作表2的B列中。我需要將工作表1中的每個存儲名稱(列A)與工作表中的每個存儲名稱(列B)進行比較2並提取2相交的位置(具有相同的商店名稱)。到目前爲止,我已經在用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的每家商店名稱(B列) ?

回答

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具有從B2列開始的商店名稱。我修改瞭解決方案,仍然沒有將數據複製到Worksheet3。 – dionysus

+0

查看編輯代碼 – user3598756

+0

@dionysus,你通過了嗎? – user3598756

相關問題