Public Function Rastreator(Valores() As String, hBusca As Worksheet, ColsBusca() As Integer, ColsRes() As Integer) As String() Dim iFila As Integer, iVal As Integer Dim bEncontrado As Boolean Dim iRes As Integer, Arr_Res() As String If UBound(Valores) <> UBound(ColsBusca) Then MsgBox "Los Valores de Búsqueda y las Columnas de Búsqueda deben tener los mismos Elementos" Exit Function End If '*** Recorremos las Filas de la Hoja de Búsqueda For iFila = 2 To hBusca.UsedRange.Rows.Count ReDim Arr_Res(0) bEncontrado = True '**** Recorremos el Array con los Valores a Buscar y los comparamos con el valor equivalente For iVal = 0 To UBound(Valores) - 1 '**** Mientras hay Coincidencia entre los Valores a Buscar y los Rangos de las Columnas equivalentes de Búsqueda Continuamos buscando If Trim(UCase(Valores(iVal))) <> Trim(UCase(hBusca.Cells(iFila, ColsBusca(iVal)))) Then bEncontrado = False: Exit For End If Next '**** Si han Coincidido todos los Valores Devolvemos el Array con los resultados If bEncontrado Then For iRes = 0 To UBound(ColsRes) - 1 ReDim Preserve Arr_Res(iRes) Arr_Res(iRes) = Trim(hBusca.Cells(iFila, ColsRes(iRes))) Next Rastreator = Arr_Res: Exit Function End If Next End Function
Comments