У меня есть пользовательский vlookup, который я хочу изменить, чтобы удалить дубликаты перед объединением. Это данные, которые я собрал. Я беру имена элементов из столбца A и удаляю дубликаты, чтобы создать уникальные данные для использования пользовательского Vlookup в столбце F.
В столбце F я использую эту функцию Excel: {=IFERROR(INDEX(A$2:A$12,MATCH(0,COUNTIF(F$1:F2,A$2:A$12),0)),"")}
Здесь я использую UDF, который выбирает код слева от него, а затем просматривает таблицу, чтобы найти имена функций, которые соответствуют , затем извлекая коды местоположений, которые нужно поместить в объединение, которое разделяет имена. Это то, что я имею в VBA для модуля.
`Function CusVlookup(FeatureName As String, pWorkRng As Range, pIndex As Long)
Dim rng As Range
Dim xResult As String
xResult = ""
For Each rng In pWorkRng
If rng = FeatureName Then
xResult = xResult & ", " & rng.Offset(0, pIndex - 1)
If Left(xResult, 2) = ", " Then
xResult = Mid(xResult, 2, 255)
End If
End If
Next
CusVlookup = xResult
End Function`
Функция, используемая в ячейке G3, выглядит следующим образом: =cusvlookup(F3,A2:E12,5)
Это мой первый настоящий набег на VBA, и У меня был код, который я мог найти, просматривая поиски в Google и здесь. Все, что мне нужно, чтобы сделать этот код, это удалить повторяющиеся значения перед объединением, но объяснение того, что происходит, будет оценено.