我只是尝试比较A
和D
列,看看A
中是否有D
中没有的值。然后,我要复制该值和相邻的单元格B
,并将它们粘贴到列G
和H
中。
例如,在照片中,预期结果将是wilsona
中的G3
和Last, First2
中的H3
。行数将是可变的,并且A
和D
可能永远不会具有相同的行数。
我只有下面的代码。问题在于,它仅将A1
与D1
进行比较,而不是与D
的整个范围进行比较:
Dim i As Integer
i = 1
For i = 3 To 20
If (Range("A" & i).Select <> Range("D" & i).Select) Then
Range("A" & i).Select
Selection.Copy
Range("G" & i).Select
ActiveSheet.Paste
Range("B" & i).Select
Selection.Copy
Range("H" & i).Select
ActiveSheet.Paste
End If
Next i
示例:
答案 0 :(得分:0)
这应该适合您的情况:
Sub Macro1()
Dim ws as Worksheet
set ws = ThisWorkbook.Worksheets("Compare")
Dim rngA As Range, rngD as Range, MySel as Range
Set rngA = ws.Range("A3", Range("A" & Rows.Count).End(xlUp))
Set rngD = ws.Range("D3", Range("D" & Rows.Count).End(xlUp))
For Each cell In rngA
If IsError(Application.Match(cell.Value, rngD, 0)) Then
If MySel Is Nothing Then
Set MySel = cell.Resize(1,2)
Else
Set MySel = Union(MySel, cell.Resize(1,2))
End If
End If
Next cell
If Not MySel Is Nothing Then MySel.Copy Destination:= ws.Range("G3")
End Sub