Excel VBA比较三个Excel列表并查找所有常见零件



我有三个Excel文件(A, B and C)。而且我必须将A列表与其他列表进行比较,以查找BC列表是否具有与A相同的零件。然后有一个单独的零件列表,可以找到列表A(B or C)。同样,如果在列表中有一个列表(b or C)部分找到的信息,那将是一件好事。在列表中,第1列是ID号,第2列是零件名称。

现在我尝试了以下代码:

Sub lookup()
Dim TotalRows As Long
Dim rng As Range
Dim i As Long
'Copy lookup values from sheet1 to sheet3
Sheets("Sheet1").Select
TotalRows = ActiveSheet.UsedRange.Rows.Count
Range("A1:B" & TotalRows).Copy Destination:=Sheets("Sheet3").Range("A1")
'Go to the destination sheet
Sheets("Sheet3").Select
For i = 1 To TotalRows
    'Search for the value on sheet2
    Set rng = Sheets("Sheet2").UsedRange.Find(Cells(i, 1), LookAt:=xlWhole)
    'If it is found put its value on the destination sheet
    If Not rng Is Nothing Then
        Cells(i, 4).Value = rng.Value
    End If
Next
End Sub

,但这对我来说不是很好。因为现在我必须在表2中复制B和C列表,然后该代码将所有列表复制到表3和下一列与Sheet2常见的内容。

我必须说有成千上万的部分。甚至将B与列表进行比较的简单方法也是好的。

所以我真的需要您的帮助。

Microsoft查询( data->从其他来源 -> Microsoft Query Query )。

示例用于比较表A和B

步骤1 :将行号列添加到表A和B

步骤2 :创建查询:

SELECT SheetA.A, SheetB.B FROM [SheetA$] as SheetA,
LEFT OUTER JOIN [SheetB$] as SheetB ON SheetA.A = SheetB.B

如果它们在不同的文件中怎么办?

SELECT SheetA.A, SheetB.B FROM `C:FileA.xlsx`.`SheetA$` as SheetA,
LEFT OUTER JOIN `C:FileA.xlsx`.`SheetA$` as SheetB ON SheetA.A = SheetB.B

一如既往,我建议使用addin创建查询:链接或使用向导(data->来自其他源 -> Microsoft查询)。

最新更新