Public Function myvlookup(myvalue As String, myrange As Range, Optional a As String, Optional b As String, Optional c As String)
Dim myarray()
x = myrange.Column
Y = x + myrange.Columns.Count - 1
sarray = Array(a, b, c)
For i = 0 To WorksheetFunction.CountA(sarray) - 1
If sarray(i) <> "" Then Count = Count + 1
Next i
Count = Count - 1
If Count < 0 Then
Count = 0
sarray = Array(myrange.Parent.Name)
End If
For i = 0 To Count
LR = LR + Sheets(sarray(i)).Cells(Rows.Count, x).End(xlUp).Row
Next i
ReDim myarray(2, LR)
For i = 0 To Count
LR = Sheets(sarray(i)).Cells(Rows.Count, x).End(xlUp).Row
For j = 1 To LR
myarray(0, j + RowCount) = Sheets(sarray(i)).Cells(j, x).Value
myarray(1, j + RowCount) = Sheets(sarray(i)).Cells(j, Y).Value
Next j
RowCount = RowCount + LR
Next i
For Z = 0 To RowCount
With WorksheetFunction
If .Proper(myarray(0, Z)) = .Proper(myvalue) Then q = myarray(1, Z)
End With
Next Z
myvlookup = q
End Function