我有三个Excel文件(A, B and C)
。而且我必须将A
列表与其他列表进行比较,以查找B
和C
列表是否具有与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查询)。