Что-то форум глюканул, тема пропала, а до этого мне в неё писать не давал, говорил - сперва зарегистрируйся... хотя я и так уже...
В общем, расту, мой код от кода The_Prist отличался только Long/Integer и тем, что The_Prist лишнюю переменную забыл убрать. Ну и ещё я VLOOKUPCOUPLE2 писал, вот этими двойками :)
Итог такой (мой вариант):
Function VLOOKUPCOUPLE(Table As Variant, SearchColumnNum As Integer, SearchValue As Variant, _
RezultColumnNum As Integer, Separator_ As String)
'Table - таблица, где ищем
'SearchColumnNum - столбец, где ищем
'SearchValue - данные, которые ищем
'RezultColumnNum - колонка, откуда берём результат
'Separator_ - разделитель, желательно вводить с пробелом в конце
Dim i As Integer
Select Case TypeName(Table)
Case "Range"
For i = 1 To Table.Rows.Count
If Table.Cells(i, SearchColumnNum) = SearchValue Then
If VLOOKUPCOUPLE <> "" Then
VLOOKUPCOUPLE = VLOOKUPCOUPLE & Separator_ & Table.Cells(i, RezultColumnNum)
Else
VLOOKUPCOUPLE = Table.Cells(i, RezultColumnNum)
End If
End If
Next i
Case "Variant()"
For i = 1 To UBound(Table)
If Table(i, SearchColumnNum) = SearchValue Then
If VLOOKUPCOUPLE <> "" Then
VLOOKUPCOUPLE = VLOOKUPCOUPLE & Separator_ & Table(i, RezultColumnNum)
Else
VLOOKUPCOUPLE = Table(i, RezultColumnNum)
End If
End If
Next i
End Select
If VLOOKUPCOUPLE = 0 Then VLOOKUPCOUPLE = ""
End Function
В общем, расту, мой код от кода The_Prist отличался только Long/Integer и тем, что The_Prist лишнюю переменную забыл убрать. Ну и ещё я VLOOKUPCOUPLE2 писал, вот этими двойками :)
Итог такой (мой вариант):
Function VLOOKUPCOUPLE(Table As Variant, SearchColumnNum As Integer, SearchValue As Variant, _
RezultColumnNum As Integer, Separator_ As String)
'Table - таблица, где ищем
'SearchColumnNum - столбец, где ищем
'SearchValue - данные, которые ищем
'RezultColumnNum - колонка, откуда берём результат
'Separator_ - разделитель, желательно вводить с пробелом в конце
Dim i As Integer
Select Case TypeName(Table)
Case "Range"
For i = 1 To Table.Rows.Count
If Table.Cells(i, SearchColumnNum) = SearchValue Then
If VLOOKUPCOUPLE <> "" Then
VLOOKUPCOUPLE = VLOOKUPCOUPLE & Separator_ & Table.Cells(i, RezultColumnNum)
Else
VLOOKUPCOUPLE = Table.Cells(i, RezultColumnNum)
End If
End If
Next i
Case "Variant()"
For i = 1 To UBound(Table)
If Table(i, SearchColumnNum) = SearchValue Then
If VLOOKUPCOUPLE <> "" Then
VLOOKUPCOUPLE = VLOOKUPCOUPLE & Separator_ & Table(i, RezultColumnNum)
Else
VLOOKUPCOUPLE = Table(i, RezultColumnNum)
End If
End If
Next i
End Select
If VLOOKUPCOUPLE = 0 Then VLOOKUPCOUPLE = ""
End Function