Я борюсь в 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
Он работает между двумя ячейками, взятыми в качестве аргумента, а это означает, что оставшаяся задача состоит в том, чтобы выбрать диапазон, содержащий общий атрибут, чтобы удалить объекты, которые не являются общими. Надеюсь, я был ясен, спасибо заранее