Я борюсь в 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

Он работает между двумя ячейками, взятыми в качестве аргумента, а это означает, что оставшаяся задача состоит в том, чтобы выбрать диапазон, содержащий общий атрибут, чтобы удалить объекты, которые не являются общими. Надеюсь, я был ясен, спасибо заранее

0