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

VBA比较两列中的值,并将缺少值的行复制到新工作表中,vba,excel,compare,Vba,Excel,Compare,我是新手,所以真的不知道从哪里开始 以下是我想要实现的宏的最佳描述: 将工作表“E转储”的“B”列中的所有值与工作表“F转储”的“G”列中的值进行比较 出现在“B”列而不是“E”列中的任何值都会将整行从工作表“E Dump”复制到工作表“Mismatch”上的下一个可用行中 非常感谢任何帮助 下面是我刚刚编写的一些工作代码。这也可以通过使用搜索功能来实现,但无论如何,这应该是可行的。我唯一的其他评论是,如果你发布自己的尝试,你就更有可能得到回复 Sub compareAndCopy() Dim

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

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

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

出现在“B”列而不是“E”列中的任何值都会将整行从工作表“E Dump”复制到工作表“Mismatch”上的下一个可用行中


非常感谢任何帮助

下面是我刚刚编写的一些工作代码。这也可以通过使用搜索功能来实现,但无论如何,这应该是可行的。我唯一的其他评论是,如果你发布自己的尝试,你就更有可能得到回复

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

谢谢你,这正是我想要的!我使用搜索功能做了一个变通,但这更干净。将来,我将确保在发布之前尝试编写一些代码。