Vlookup con error

Esta es mi primer pregunta en el foro, aunque ya me han ayudado mucho en otros problemas con macros, de los cuales ya se encontraba la respuesta...
En este caso quiero hacer un vlookup y cuando el valor no se encuentre(#N/A en excel), que me arroje "#N/A"...
El código que hice es el siguiente, pero me arroja el error 1004 - Tiempo de ejecución, "no se puede obtener la propiedad vlookup de la clase worsheetfunction...
Antes de poner el If not iserror me aparecía el error pero lo solucionaba con un 'On Error Resume Next, pero en este caso no me ponía ningún valor en la celda que no encontraba coincidencia.
¿Podrían ayudarme?
For i = 11 To ultimafila
If Left(Cells(i, 1), 9) = "MEXICOGAT" Then
equipo = Worksheets("Hoja1").Cells(i, 1).Value
With Application.WorksheetFunction
If Not IsError(.VLookup(equipo, Worksheets("Hoja2").Range("A:A"), 1, False)) Then
Cells(i, 4).Value = Application.WorksheetFunction.VLookup(equipo, Worksheets("Hoja2").Range("A:A"), 1, False)
Else
Cells(i, 4).Value = "#N/A"
End If
End With
End If
Next i

1 respuesta

Respuesta
1
Pruébalo con estos cambios:
For i = 11 To ultimafila
If Left(Cells(i, 1), 9) = "MEXICOGAT" Then
equipo = Worksheets("Hoja1").Cells(i, 1).Value
On Error Resume next
Cells(i, 4).Value = Application.WorksheetFunction.VLookup(equipo, Worksheets("Hoja2").Range("A:A"), 1, False)
If Error Then
Cells(i, 4).Value = "#N/A"
End If

End If
Next i
Disculpa, reemplazá la línea del error con esto:
If Err > 1000 Then
TAmbién debieras colocar a continuación de: Cells(i, 4). Value = "N/A" esta otra para volver el control de error a 0
On error goto 0
Sdos
Elsa
Excelente respuesta Elsa!
Si no es mucha molestia podría pedirte si me explicas que significa la línea If Err>1000
Con esto alcanzaría a comprender el código
Muchas Gracias!
sds
Porque el error que mencionas es siempre 1004, podía haber preguntado si Err = 1004, pero en ese momento no recordaba con exactitud el nro, je je
Sdos
Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas