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