VLookup wiele kolumn

Używam funkcji VLookup, która wyszukuje wiele wartości, które są obecne w kolumnie. Działa to bardzo dobrze, ale zajmuje dużo czasu, ponieważ mam 100 000 wierszy w arkuszu programu Excel.

Czy jest jakiś sposób na przyspieszenie tego kodu?

Kod zasadniczo szuka konkretnej wartości w kolumnie i otrzymuje przesunięcie. Różnica między prostym VLookup i tym, że w przypadku, gdy istnieje wiele wierszy o tej samej wartości wyszukiwania, pobiera wszystkie elementy.

   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

questionAnswers(4)

yourAnswerToTheQuestion