Muszę porównać dwie kolumny, w jednym z których jest "all_filenames", a w drugim - "part_number", użyłem wyszukaj. pionowo do wyszukiwania dopasowań, i to się udało. Jednak problem w tym, że w dziale "wszystkie nazwy plików "zawiera około 2000 danych, a w dziale" numer części " - tylko 500. Dane w dziale "numer części" mogą pokrywać się z kilkoma informacjami w części "nazwy wszystkich plików", ale problem w tym, że nie są one zgodne z określonej nazwy. Przykład: Kolumna A będzie zawierać nazwy wszystkich plików, oto co jest: XP605_Top.jpg AR131_Front.jpg 28528_765BP_Front.jpg 2543_Front.jpg. W kolumnie B, który będzie "part_number", jest on przechowywany jako: XP605.jpg AR131.jpg 28528.jpg 2543.jpg. W ten sposób, teoretycznie można by to traktować jako zbieg okoliczności, ale, ponieważ w kolumnie A brakuje kilku słów lub cyfr, to nie będzie pasować. Więc mój problem polega na tworzeniu UDF w celu rozwiązania tego problemu. Nie jestem pewien, czy jestem wystarczająco dobry na wszystko wyjaśnił. Czy ktoś może mi pomóc? Dziękuję.
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
Do tej pory jest to jedyny kod, który znalazłem i próbowałem, ale problem w tym, że nadal nie pasuje, bo myślę, że on próbuje znaleźć dokładne dopasowanie. Jestem bardzo początkujący w VBA, więc mi wciąż trudno go używać.
Potrzebuję, aby "wartość zgodności" wróciło w innej kolumny z numerem części, a jeżeli jest kilka zbiegów okoliczności, chcę, aby wszyscy byli w środku kolumny.