Excel:比较2列并将丢失的数据拉入第3列

时间:2018-10-16 11:58:57

标签: excel vba function vlookup

曾经疯狂地搜索,但是找不到我想要的东西。

A列:一些员工(部分名单)

E列:所有员工(完整列表)

我需要在C列中填充不在A列中的所有其他员工(将A列与E列进行比较,以将数据拉到不在A列中的C列中)。

我已经尝试过IF,VLOOKUP函数,并且已经接近但不希望C列中有任何空白单元格。

我希望使用VBA代码(因为A和C列链接到外部数据源)并使用VBA填充。

谢谢!

1 个答案:

答案 0 :(得分:0)

尝试一下:

Sub test()

Dim LastRowA As Long
Dim LastRowC As Long
Dim LastRowE As Long
Dim i As Long
Dim j As Long
Dim NameNotExist As Boolean

LastRowA =Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Row
LastRowC = Sheet1.Cells(Sheet1.Rows.Count, "C").End(xlUp).Row
LastRowE = Sheet1.Cells(Sheet1.Rows.Count, "E").End(xlUp).Row

For i = 1 To LastRowE
    For j = 1 To LastRowA
        NameNotExist = False
        If Sheet1.Range("E" & i).Value =Sheet1.Range("A" & j).Value Then
            Exit For
        Else
            NameNotExist = True
        End If
    Next j
    If NameNotExist = True Then
        If LastRowC = 1 And Sheet1.Range("C1").Value = "" Then
          Sheet1.Range("C1").Value =Sheet1.Range("E" & i).Value
        Else:
            LastRowC =Sheet1.Cells(Sheet1.Rows.Count, "C").End(xlUp).Row
           Sheet1.Range("C" & LastRowC + 1).Value = Sheet1.Range("E" & i).Value
        End If
    End If
Next i

End Sub