比较vba中的多个单元格并返回每个比较的结果

时间:2017-09-22 15:00:51

标签: excel-vba compare vba excel

我在sheet1中输入了4个单元格(A2到A5)的值,现在代码应该是这样的,即VBA从sheet1中的4个单元格中获取值,并将它们与(A1到D1)中的单元格进行比较。 sheet2并且应该在每个单元格中的sheet2(E2到E5)中的4个单元格中返回结果,表示匹配或不匹配。

我一直在尝试这个,但是能够使用IF和THEN四次。任何使用循环或可以将代码从30多行更改为少数的东西。

1 个答案:

答案 0 :(得分:0)

尝试

Sub Demo()
    Dim srcSht As Worksheet, destSht As Worksheet
    Dim cel As Range, destCell As Range
    Dim colIndex As Long

    Set srcSht = ThisWorkbook.Sheets("Sheet1")  'source sheet
    Set destSht = ThisWorkbook.Sheets("Sheet2") 'destination sheet
    Set destCell = destSht.Range("D33")
    colIndex = 1

    For Each cel In srcSht.Range("A2:A5")   'loop through each cell in range srcSht.Range("A2:A5")
        If cel.Value = destSht.Cells(1, colIndex) Then  'check for match
            destCell.Offset(colIndex - 1, 0).Value = "Match"         'display result
        Else
            destCell.Offset(colIndex - 1, 0).Value = "No Match"      'display result
        End If
        colIndex = colIndex + 1
    Next cel
End Sub