VBA比较两列中的值,并将缺失值行复制到新工作表

时间:2014-05-29 07:27:09

标签: excel vba excel-vba compare

我是新手,所以真的不知道从哪里开始。

这是我想要实现的宏的最佳描述:

将工作表“E Dump”的“B”列中的所有值与工作表“F Dump”中的“G”列中的值进行比较。

列“B”中出现的任何值,但不是“E”列,将工作表“E Dump”中的整行复制到工作表“不匹配”中的下一个可用行。

任何帮助太多的帮助!

1 个答案:

答案 0 :(得分:1)

下面是我刚刚编写的一些工作代码。这也可以使用搜索功能完成,但无论如何都应该有效。我唯一的另一个评论是,如果你发布自己的尝试,你更有可能得到回应!

Sub compareAndCopy()

Dim lastRowE As Integer
Dim lastRowF As Integer
Dim lastRowM As Integer
Dim foundTrue As Boolean

' stop screen from updating to speed things up
Application.ScreenUpdating = False

lastRowE = Sheets("E Dump").Cells(Sheets("E Dump").Rows.Count, "B").End(xlUp).row
lastRowF = Sheets("F Dump").Cells(Sheets("F Dump").Rows.Count, "G").End(xlUp).row
lastRowM = Sheets("Mismatch").Cells(Sheets("Mismatch").Rows.Count, "B").End(xlUp).row



For i = 1 To lastRowE
foundTrue = False
For j = 1 To lastRowF

    If Sheets("E Dump").Cells(i, 2).value = Sheets("F Dump").Cells(j, 7).value Then
        foundTrue = True
        Exit For
    End If

Next j

If Not foundTrue Then
    'MsgBox ("didnt find string: " & Sheets("E Dump").Cells(i, 2).value)
    Sheets("E Dump").Rows(i).Copy Destination:= _
    Sheets("Mismatch").Rows(lastRowM + 1)
    lastRowM = lastRowM + 1

End If


Next i

' stop screen from updating to speed things up
Application.ScreenUpdating = True

End Sub