列搜索/比较

时间:2015-12-08 00:14:28

标签: vba

Sub compare()
Dim Arr() As Variant
Arr = Range("A1:Z6")
Dim R As Long
For R = 1 To UBound(Arr, 1)
    If Arr(R, 1) = Arr(R, 4) And Arr(R, 2) = Arr(R, 5) Then
        Arr(R, 3) = Arr(R, 6)
    End If 
Next R
Range("A1:Z6") = Arr
End Sub

上面的代码比较2列以查看它们是否相等以及其他2列,以查看它们是否同时相等。然后,如果满足这些条件,则将单元格的值复制到另一个位置。 问题是我只将第一行中的信息与第一行中的其他信息进行比较。我需要做的是将第一行中两个单元格的信息与第1,2,3行中的下两个单元格进行比较......我已经制作了一张图片来更好地描述我需要的内容。我需要更多的循环。

http://s18.postimg.org/obf2w9o21/vba.png

提前感谢任何愿意提供帮助的人!

1 个答案:

答案 0 :(得分:0)

代码基于您的图片。让我知道

  Sub test()

    Dim i As Integer, j As Integer
    Dim Lastrow As Long, Lastrow2 As Long

Lastrow = Sheets("Sheet1").Range("A" & Rows.Count).End(xlUp).Row
Lastrow2 = Sheets("Sheet1").Range("E" & Rows.Count).End(xlUp).Row

    For i = 1 To Lastrow

            For j = 1 To Lastrow2

            If Range("A" & i).Value = Range("D" & j).Value And Range("B" & i).Value = Range("E" & j).Value Then

                     Range("C" & i).Value = Range("F" & j).Value
            End If

        Next j

    Next i

End Sub