Function time_find(ByVal rng_test_data As Range) As Double
    Dim lng_result_array As Long
    Dim dbl_start_time As Double, dbl_end_time As Double
    Dim rng_lookup_column As Range, rng_found_result As Range
    Dim str_first_address As String

    dbl_start_time = Timer
    Set rng_lookup_column = rng_test_data.Resize(rng_test_data.Rows.Count, 1)
    With rng_lookup_column
        Set rng_found_result = .Find("foo", After:=.Cells(.Rows.Count, .Columns.Count), _
                                     LookIn:=xlValues, SearchDirection:=xlNext, MatchCase:=False)
        str_first_address = rng_found_result.Address
        Do
            Set rng_found_result = .FindNext(rng_found_result)
            If rng_found_result.Offset(0, 1) = "bar" Then
                lng_result_array = lng_result_array + 1
            End If
        Loop While Not rng_found_result Is Nothing And rng_found_result.Address <> str_first_address
    End With
    dbl_end_time = Timer
    time_find = dbl_end_time - dbl_start_time
End Function