比较3个范围而不是2个

Art*_*urV 0 excel vba udf

Public Function Compare(r1 As Range, r2 As Range) As Long
   Dim r As Range, v As Variant, v2 As Variant
   Dim rr As Range
   For Each r In r1
      v = r.Value
      If v <> 0 And v <> "" Then
         For Each rr In r2
            v2 = rr.Value
            If v = v2 Then Compare = Compare + 1
         Next rr
      End If
   Next r
End Function
Run Code Online (Sandbox Code Playgroud)

此UDF比较2个范围并返回匹配值的数量.我想比较3个范围,以便找到同时在所有3个范围中出现的值.

非常感谢任何帮助.

Tim*_*ams 6

Public Function Compare(r1 As Range, r2 As Range, r3 As Range) As Long
   Dim r As Range, v As Variant, m1 As Variant, m2 As Variant
   Dim rv As Long

   rv = 0
   For Each r In r1
      v = r.Value
      If v <> 0 And v <> "" And Not IsError(v) Then
            m1 = Application.Match(v, r2, 0)
            m2 = Application.Match(v, r3, 0)
            If Not IsError(m1) And Not IsError(m2) Then
               rv = rv + 1
            End If
      End If
   Next r
   Compare = rv
End Function
Run Code Online (Sandbox Code Playgroud)