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

Excel VBA比较三个Excel列表并查找所有常用零件,excel,vba,Excel,Vba,我有三个excel文件(a、B和C)。我必须将A列表与其他列表进行比较,以确定B和C列表的部分是否与A相同。然后在列表a和(B或C)中单独列出可以找到的零件。此外,如果列表中有一个列表(b或C)部分找到的信息,这也很好。 在列表中,第1列是ID编号,第2列是零件名称 现在我尝试了以下代码: Sub lookup() Dim TotalRows As Long Dim rng As Range Dim i As Long 'Copy lookup values from sheet1 to sh

我有三个excel文件
(a、B和C)
。我必须将
A
列表与其他列表进行比较,以确定
B
C
列表的部分是否与
A
相同。然后在列表
a
(B或C)
中单独列出可以找到的零件。此外,如果列表中有一个列表
(b或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列表,然后这个代码将所有A列表复制到第3页和下一列,这是第2页的共同点

我必须说有成千上万的零件。 即使是比较B和列表的简单方法也不错


所以我真的需要你的帮助

Microsoft查询救援(数据->来自其他来源->Microsoft查询

比较表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
如果它们在不同的文件中怎么办?
一如既往,我建议使用我的加载项创建查询:或使用向导(数据->来自其他来源->Microsoft Query)。

如果您的数据在数据表中,我可以通过参考我以前的内容来帮助您。列表对象是工作表的子集,工作表是工作簿的子集。你需要一路定义它们。
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