Come abbinare due colonne e il valore di ritorno di terzi in VBA

0

Domanda

Devo corrispondere a due colonne, l'una è "all_filenames", mentre l'altro ha il "part_number" ho usato VLOOKUP a trovare le partite e non lavoro. Tuttavia, il problema è che in "all_filenames c'è circa 2.000 i dati e sotto "part_number" ci sono solo 500. I dati sotto "part_number" potrebbe trovare più dati in "all_filenames" ma il problema non è non corrisponde il nome specifico. Esempio: Colonna A sarebbe all_filenames, questi sono i dati che sono memorizzati: XP605_Top.jpg AR131_Front.jpg 28528_765BP_Front.jpg 2543_Front.jpg. Nella Colonna B, che sarebbe "part_number" memorizzato come: XP605.jpg AR131.jpg 28528.jpg 2543.jpg. Quindi, in teoria, questo potrebbe essere considerato come una partita, ma dato che ci sono un paio di parole o il numero mancante nella Colonna A che non corrisponda. Quindi il mio problema è fare una UDF per risolvere questo problema. Non so se mi sono spiegato abbastanza bene. Qualcuno mi può aiutare? Grazie.

Public Function WhereIs(rIn As Range, rList As Range) As String
   Dim s1 As String, r As Range
   Dim s2 As String
   WhereIs = ""
   s1 = rIn.Text

   For Each r In rList
      s2 = r.Text
      If InStr(1, s2, s1) > 0 Then
         If WhereIs = "" Then
            WhereIs = r.Address(0, 0)
         Else
            WhereIs = WhereIs & "," & r.Address(0, 0)
         End If
      End If
   Next r

   If WhereI <> "" Then WhereIs = "no match" 
      
End Function

Finora questo è l'unico codice che ho trovato e provato, ma il problema è che ancora non è partita perchè penso che si tenta di cercare una corrispondenza esatta. Io sono di veramente nuovo con VBA, quindi sono ancora un periodo difficile utilizzo.

Ho bisogno di la 'corrispondenza' di tornare in un'altra colonna con il numero di parte e se ci sono più partite ho bisogno di tutto per essere all'interno della colonna.

excel vba
2021-11-23 23:07:28
1

Migliore risposta

0

Si potrebbe utilizzare e pulire le colonne di dati. Se i nomi di file sono nella colonna a, quindi

=LEFT(A1,FIND("_",A1)-1)

Rimuovere tutto fino al primo "_". Per la vostra lista componenti

=LEFT(C1,LEN(C1)-4)

sbarazzarsi di ".jpg" parte del nome (oppure si può utilizzare SOSTITUIRE come suggerito nei commenti). Questo renderà la funzione VLOOKUP più felice

2021-11-24 03:21:24

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................