You are right Rajiv..... we probably didn't need to have an index in the function. But it can be tweaked to give your result though
Code:
Function UniqueList(rng As Range, Optional Pos As String) As Variant
Dim List As Variant
Dim cell As Range
Dim i As Long
Dim t As Long
Dim flag As Long
i = 0
ReDim List(rng.Cells.Count) As Variant
For Each cell In rng
flag = 0
For t = LBound(List) To UBound(List)
If cell.Value = List(t) Then
flag = 1
Exit For
End If
Next
If flag = 0 Then
List(i) = cell.Value
i = i + 1
End If
Next
ReDim Preserve List(i - 1)
If Pos <> "" Then
UniqueList = List(CLng(Pos))
Else
UniqueList = List
End If
End Function
Sub ExampleOfHowToUseIt()
MsgBox Join(UniqueList(rngRange), ",")'When it's an array
MsgBox UniqueList(rngRange, 1)'When you've passed the index of the element, it gives just one value
End Sub
Bookmarks