Vlookup с использованием функции VBA - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть две таблицы:

Пользователи электронных таблиц:

ID                     NAME
jg1988            Junior Gomez
rs1772            Rose Mills

DATAANDLINKS электронной таблицы:

USERS
Jeff Connor,Rose Mills,Junior Gomez,Michael smith

Мне нужна функция Vlookup для просмотра пользователей и получения id совпадений.

В этом случае:

rs1772,jg1988

1 Ответ

1 голос
/ 05 февраля 2020

С пользовательской функцией это возможно. Найдите в модуле и используйте as = A_Lookup (A6, «Users», «B», «A»), где A6 - строка имен, «Users» - справочный лист, «B» - столбец с именами ». А "идентификаторы.

Function A_Lookup(names As String, sht As String, colName As String, colID As String) As String

    Dim rngName As Range, rngID As Range
    With ThisWorkbook.Sheets(sht)
        Set rngName = .Range(colName & ":" & colName)
        Set rngID = .Range(colID & ":" & colID)
    End With

    Dim ar As Variant, s As String, n As Integer, i As Integer
    ar = Split(names, ",")
    s = ""
    On Error Resume Next
    For n = 0 To UBound(ar)
        i = 0
        If Len(ar(n)) > 0 Then
            i = WorksheetFunction.Match(CStr(ar(n)), rngName, 0)
            If i > 0 Then
                If s <> "" Then s = s & ","
                s = s & rngID.Cells(i, 1)
            End If
        End If
    Next
    On Error GoTo 0
    A_Lookup = s

End Function
...