如果值在某个范围内,则在两个单元格之间进行匹配 VBA

如果值在某个范围内,则在两个单元格之间进行匹配 VBA

我在 VBA 中苦苦挣扎,因为我想比较两个单元格以检查它们之间是否有部分匹配。但我想通过范围内的列表删除两个单元格不共有的实体。例如,我在单元格范围内列出了列表,并对公共属性进行了后处理:

Paul 
Pierre 
John 
Henry 
Jack

我想要的是匹配两个以逗号分隔名称的单元格:

Cell1 : Paul, Pierre,Rob
Cell2 : Paul,Jack,Rob

应用此功能时预期的结果应为:

Cell3 with function : Paul

到目前为止我拥有的是:

  Function Matching(str1 As String, str2 As String) As String
     Dim vArr1
     Dim vArr2
     Dim vTest
     Dim lngCnt As Long
     vArr1 = Split(Replace(str1, " ", vbNullString), ",")
     vArr2 = Split(Replace(str2, " ", vbNullString), ",")
     On Error GoTo strExit
     For lngCnt = LBound(vArr1) To UBound(vArr1)
         vTest = Application.Match(vArr1(lngCnt), vArr2, 0)
         If Not IsError(vTest) Then Matching= Matching& vArr1(lngCnt) & ", "
     Next lngCnt
     If Len(Matching) > 0 Then
         Matching= Left$(Matching, Len(Matching) - 2)
     Else
         strExit:
         Matching= "No Matches!"
     End If

 End Function

它在作为参数的两个单元格之间工作,这意味着剩下的任务是选择包含公共属性的范围,以便删除不常见的实体。希望我说清楚了,提前谢谢

相关内容