Código:
Function eXl_BuscarVar(valor_buscado As Range, PrimerColumna As Integer, Devolver As Integer)
'Declaramos variables
Dim i As Integer
Dim Alto As Integer
Dim Rango
Dim Valor As String
Dim Valor2 As String
'Definimos la aplicación como Volatile, es decir, que se calcule automáticamente
Application.Volatile
On Error Resume Next
'Recorremos cada una de las hojas del libro
For i = 2 To ActiveWorkbook.Sheets.Count
'Definimos el alto del rango de cada una de las hojas al número de filas con datos.
Alto = Application.WorksheetFunction.CountA(Sheets(i).Columns(PrimerColumna).EntireColumn)
'Definimos cada matriz de búsqueda de cada una de las hojas
Rango = Range(Cells(1, PrimerColumna), Cells(Alto, PrimerColumna + Devolver - 1)).Address
'A la variable Valor le asignamos lo que devuelva la función BUSCARV (VLookup)
Valor = Application.WorksheetFunction.VLookup(valor_buscado.Value, Sheets(i).Range(Rango), Devolver, 0)
'Si la función BUSCARV devuelve un valor, entonces se detiene el ciclo For
If Valor <> Empty Then Exit For
Next i
On Error GoTo 0
'Si el BUSCARV devuelve un valor vació, entonces mostramos el valor #N/A
If Valor = Empty Then
eXl_BuscarVar= VBA.CVErr(xlErrNA)
Else
'Si BUSCARV devuelve un valor, lo asignamos como valor final a la función eXl_BuscarVar
eXl_BuscarVar= Valor
End If
End Function
👉 Como hacer que la UDF (User Defined Functions) esté disponible como una Función Nativa de Excel
⭐ Si te gustó, por favor regístrate en nuestra Lista de correo y Suscríbete a mi canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.