Estou com dificuldades no VBA porque quero comparar duas células para verificar se existe uma correspondência parcial entre elas. Mas eu quero remover as entidades que não são comuns para ambas as células através da lista em um intervalo. Por exemplo, tenho minha lista dentro do intervalo de células onde pós-processo o atributo comum:
Paul
Pierre
John
Henry
Jack
E o que eu quero é combinar entre duas células em que o nome é separado por um coma:
Cell1 : Paul, Pierre,Rob
Cell2 : Paul,Jack,Rob
O resultado esperado ao aplicar esta função deve ser:
Cell3 with function : Paul
A partir de agora, isso que eu tenho:
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
Ele está trabalhando entre as duas células tomadas como argumento, o que significa que a tarefa restante é selecionar o intervalo que contém o atributo comum para remover as entidades que não são comuns. Espero que tenha sido claro, obrigado antecipadamente