VLookup columnas múltiples

Estoy usando la función VLookup que busca múltiples valores que están presentes en la columna. Esto funciona muy bien pero solo toma mucho tiempo ya que tengo 100,000 filas en la hoja de Excel.

¿Hay alguna manera de acelerar este código?

El código básicamente busca un valor particular en una columna y obtiene el desplazamiento. La diferencia entre el VLookup simple y esto es que en caso de que haya varias filas con el mismo valor de búsqueda, entonces se obtienen todos los elementos.

   Function VLookupAll(ByVal lookup_value As String, _
                ByVal lookup_column As Range, _
                ByVal return_value_column As Long, _
                Optional seperator As String = ", ") As String

 Dim i As Long
 Dim result As String

For i = 1 To lookup_column.Rows.Count
If Len(lookup_column(i, 1).Text) <> 0 Then
    If lookup_column(i, 1).Text = lookup_value Then
        result = result & (lookup_column(i).Offset(0, return_value_column).Text & seperator)
    End If
End If
Next

If Len(result) <> 0 Then
result = Left(result, Len(result) - Len(seperator))
End If

VLookupAll = result

End Function

Respuestas a la pregunta(4)

Su respuesta a la pregunta