将一行中的单元格与同一工作表中的另一行进行比较

时间:2014-06-29 13:03:19

标签: excel-vba vba excel

感谢本论坛的所有优秀成员。我需要一些帮助。我想比较一行中的几个单元格与同一个工作表中的另一行。 例如。我想看看C1:G1是否包含与C2:G2相同的值

非常感谢任何帮助。

再次感谢

2 个答案:

答案 0 :(得分:0)

在单元格C3中插入公式:=IF(C1=C2, 1,0)并将其扩展到单元格G3。 “1”表示匹配,“0”相应地表示不匹配。您可以反之亦然,例如:=IF(C1=C2,0,1)然后将SUM运算符应用于单元格:SUM(C3:G3)。 “0”表示完全匹配,任何非零表示具有不匹配的单元数。

或者您可以在VBA中执行此操作:

Function IsEqual() As Boolean

If Range("C1").Value & Range("D1").Value & Range("E1").Value & Range("F1").Value & Range("G1").Value = Range("C2").Value & Range("D2").Value & Range("E2").Value & Range("F2").Value & Range("G2").Value Then
    IsEqual = True
Else
    IsEqual = False
End If

End Function 

RGDS,

答案 1 :(得分:0)

这会做你想要的!

Sub check()
Dim checkArr1, checkArr2 As Variant
Dim l As Long
Dim ElementsSame As Boolean

checkArr1 = Array(Range("C1"), Range("D1"), Range("E1"), Range("F1"), Range("G1"))
checkArr2 = Array(Range("C2"), Range("D2"), Range("E2"), Range("F2"), Range("G2"))

ElementsSame = True
For l = 0 To 4 'C to G is 5 (shifted left because array)
    If checkArr1(l) <> checkArr2(l) Then
        ElementsSame = False
        Exit For
    End If
Next l

If ElementsSame = True Then
    'do the stuff you want to do
    Range("A1") = 1 'I did this to error trap
Else
    Range("A1") = 0 'I did this to error trap
End If

End Sub