Corresponde entre duas células se os valores estiverem em um intervalo VBA

0

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

    
por Polin 12.04.2016 / 10:24

0 respostas