Hi Folks,

I just forgot to share... what KVS has made...
Just simply superb.. Fastest till now for the same job...


Function NthMatchNEW(ByVal Lvalue As Variant, Lrange As Variant, Mnum As Variant)
'For ARRAY and RANGE input
Dim M As Variant
Dim X As Integer, MatchNo As Integer

On Error Resume Next

M = Join(Application.Transpose(Lrange), "&,")
M = Join(Lrange, "&,")
M = "&," & M & "&,"
X = 1

For t = 1 To Mnum
    X = InStr(X, M, "&," & Lvalue & "&,")
    If X < y Then GoTo Line1
    X = X + 1
    y = X
Next t

NthMatchNEW = Int((Len(Left(M, y)) - Len(Replace(Left(M, y), "&,", ""))) / 2)

Line1:
If NthMatchNEW = 0 Then NthMatchNEW = "#ERROR"

End Function
Thanks again KVS..
Using Strings was a great idea..

Vikas Gautam