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