Macros 宏来查找一列中的值和另一列中的值,以便在前两个值均为真时返回不同列中的值

Macros 宏来查找一列中的值和另一列中的值,以便在前两个值均为真时返回不同列中的值,macros,comparison,Macros,Comparison,我有一个工作表,需要从另一个文件中提取数据。我需要一个宏来分别获取活动工作表每一行中a列和D列中的值,并将这些值分别与其他文件a列和F列中的值进行比较。如果在此工作表的行中找到匹配项,则我希望它获取B列和C列中的值,并将它们放入第一个工作表的B列和C列中。我对构建宏还不熟悉,而这一次让我在如何获取所需的方面遇到了难题。有人能帮忙吗 工作表示例: 第一份工作表 第二工作表 我想出了一个解决办法。我结合了顶部组件和组件项,并对两个列进行了VLOOKUP。这是草率的,因为它能工作 Columns("

我有一个工作表,需要从另一个文件中提取数据。我需要一个宏来分别获取活动工作表每一行中a列和D列中的值,并将这些值分别与其他文件a列和F列中的值进行比较。如果在此工作表的行中找到匹配项,则我希望它获取B列和C列中的值,并将它们放入第一个工作表的B列和C列中。我对构建宏还不熟悉,而这一次让我在如何获取所需的方面遇到了难题。有人能帮忙吗

工作表示例:

第一份工作表

第二工作表


我想出了一个解决办法。我结合了顶部组件和组件项,并对两个列进行了VLOOKUP。这是草率的,因为它能工作

Columns("B:B").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets("Potential Issues").Select
Range("B1").Select
ActiveCell.FormulaR1C1 = "Unique Top Assembly Comp Item Number"
Range("C1").Select
ActiveCell.FormulaR1C1 = "NHA Item"
Range("D1").Select
ActiveCell.FormulaR1C1 = "NHA User Item Type"
With ActiveSheet.Range("A2").CurrentRegion
   If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
       With .Columns(2)
           .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=RC[-1]&RC[3]"
       End With
   End If
End With
Cells.Select
Selection.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Range("A1").Select
With ActiveSheet.Range("A2").CurrentRegion
    If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
        With .Columns(3)
            .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).FormulaR1C1 = _
            "=VLOOKUP(C[-1],'B2.0 Buys Exploded BOM'!C2:C4,2,0)"
        End With
    End If
End With
With ActiveSheet.Range("A2").CurrentRegion
    If .Columns(1).SpecialCells(xlCellTypeVisible).Count > 1 Then
        With .Columns(4)
            .Resize(.Rows.Count - 1).Offset(1).SpecialCells(xlCellTypeVisible).FormulaR1C1 = _
            "=VLOOKUP(C[-2],'B2.0 Buys Exploded BOM'!C2:C4,3,0)"
        End With
    End If
End With
Cells.Select
Selection.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
Columns("B:B").Select
Selection.ColumnWidth = 21
Columns("C:C").Select
Selection.ColumnWidth = 24
Columns("D:D").Select
Selection.ColumnWidth = 15
Range("B:B,G:H").Select
Selection.EntireColumn.Hidden = True
Range("A1").Select