Yo uso esto para traer a un trabajador que elijo en un comboficha en un formulario...
'Buscar el nombre del trabajador
Dim RangoBusqueda As Range
Dim resultado, Resultado2, valor As String
Dim I As Long
'ahora seteo el rango en donde la macro deberá buscar el código,
'que es la tabla que se encuentra en la hoja "trabajadores":
'noten que el rango incluye ambas columnas, ya que deberemos
'buscar el código y que la funcion nos devuelva el nombre:
Set RangoBusqueda = Sheets("trabajadores").Range("A2:C1048576")
'recorremos la columa A de la hoja "trabajadores"
With Sheets("trabajadores")
'recorro de la fila 1 a la 5
'For I = 1 To 100
'tomo el codigo presente en la primer columna:
valor = ComboFicha.Value
'MsgBox Valor
'coloco un controlador de errores:
On Error Resume Next
'busco a Valor en "trabajadores"
resultado = Application.WorksheetFunction.VLookup(val(valor), RangoBusqueda, 2, False)
Resultado2 = Application.WorksheetFunction.VLookup(val(valor), RangoBusqueda, 3, False)
Cargo = Resultado2
'MsgBox Cargo
TextNombre.Text = resultado
CommandButton1.Enabled = True
'si hubo error (el codigo NO existe), dejo la celda en blanco
'If Err.Number = 1004 Then
' MsgBox Resultado
' .Cells(I, 2).Value = ""
' Err. Clear
'Else
'si encontró el Valor, le coloco el nombre del producto en columna
'de al lado
'End If
'Next I
End With
' Fin de buscar el trabajador
esta linea es la formula buscarV solo que esta en macro.. te la explico
resultado = Application.WorksheetFunction.VLookup(val(valor), RangoBusqueda, 2, False)
Valor es el valor que busco,
Rango busqueda es el rango donde se encuentra mi trabajador
Y el 2 es la columna que quiero regresar es decir mi resultado...
Si busco el valor 3305 que esta en la columna A me devolvera Juan que esta en la columna B que es el Numero 2