如果列中不存在值,则创建新行

时间:2019-06-30 21:35:58

标签: excel vba

我有一个包含2列的表:A和B。如果B列中的值存在,我想在A列中进行搜索。如果它不存在,那么我想在A列的最后一行中添加此值,如果它存在,则我什么都不想要。我希望对于B列中的每个值,直到它结束时都会发生这种情况。例如,如果B列中有3个值在A列中不存在,我希望将它们作为3个新行添加到A列的末尾。

这是一个例子:

之前:

screenshot 1

之后:

screenshot 2

有什么想法吗? 谢谢

1 个答案:

答案 0 :(得分:0)

从您的图片中,我认为这只是一张纸,因此此代码应该对您有用:

Sub Macro1()

Dim rngA As Range, rngB As Range, MySel As Range, LastRow As Long, ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)

With ws
    LastRow = .Range("A" & .Rows.Count).End(xlUp).Row
    Set rngA = .Range("A1:A" & LastRow)
    Set rngB = .Range("B1", .Range("B" & .Rows.Count).End(xlUp))
End With

For Each cell In rngB
    If IsError(Application.Match(cell.Value, rngA, 0)) Then
        If MySel Is Nothing Then
            Set MySel = cell
        Else
            Set MySel = Union(MySel, cell)
        End If
    End If
Next cell

If Not MySel Is Nothing Then MySel.Copy Destination:=ws.Range("A" & LastRow + 1)
End Sub