Detalles con la Formula VLOOKUP

06/11/2003 - 19:03 por Daniel Sandoval | Informe spam
Que tal a todos!!!

Bueno, Tengo la siguiente instrucción

Range("A4").Select
cRango = ActiveCell.CurrentRegion.Address

Los valores del rango que extrae son los siguientes:
A B C
4 Clave Nombre Sueldo
5 001 Juan $100.00
6 002 Jesus $90.00

El rango que extrae CurrentRegion ($A$4:$C$6) contiene encabezados y cuando
ejecuto VLOOKUP para el valor "001" o "002" me regresa #NA. Este problema se
corrige si solo extraigo los valores desde el rango ($A$5:$C$6). A que se
debe este problema o como lo puedo corregir???

Otra pregunta???
Utilizando la instruccion VBA Formula se ejecuta la formula VLOOKUP, el
valor de la variable cValor (código de abajo), la toma como <1> en lugar de
<001>. Ya intente poniendo STR(cValor), poniendo .Text, etc y no me
funciona. Cómo le hago para que el valor me lo acepte como un string "001" y
no como un Entero. Ya que debido a esto nunca encuentra el valor buscado.

cRango = ActiveCell.CurrentRegion.Offset(1).Address

Sheets("Reporte").Activate
Range("A3").Select

cValor = ActiveCell.Offset(0, 5).Value

ActiveCell.Offset(0, 8).Formula = _
"=VLOOKUP(" & cValor & ",'Salarios'!" & cRango & ",3)"

Gracias de antemano!!
 

Leer las respuestas

#1 Héctor Miguel
07/11/2003 - 05:05 | Informe spam
Hola, Daniel !

... la siguiente instruccion [...]
cRango = ActiveCell.CurrentRegion.Address
... el rango que extrae ... contiene encabezados y ... VLOOKUP para ... "001" o "002" me regresa #NA.
... A que se debe este problema o como lo puedo corregir???



'CurrentRegion' INCLUYE 'encabezados' [si existen]
para 'ajustar' el rango ['bajar' una fila despues de los encabezados y 'recortarla' del rango]...
utiliza [algo +/- como] la siguiente instruccion para 'asignar' la direccion a la variable 'cRango':
=>dicho sea 'de paso', NO necesitas 'activar' [hoja y celda] para 'obtener' el rango< With Sheets("Salarios").Range("a4").CurrentRegion
cRango = .Offset(1).Resize(.Rows.Count - 1).Address
End With

Utilizando ... VBA ... la formula VLOOKUP ... la variable cValor ... la toma como <1> en lugar de <001>
... intente poniendo STR(cValor), poniendo .Text, etc y no me funciona.
... que el valor me lo acepte como un string "001" y no como un entero [...]



supongo que tienen formato 'de texto' las celdas [rango de las claves y de donde 'se toma' la variable 'cValor']
[al usar vba] para 'poder' pasar argumentos de texto [mediante variables] a funciones de hoja de calculo...
es necesario incluir el 'delimitador' de textos [comillas dobles] 'intercalando' DOBLES_comillas_dobles
como 'delimitadores' del valor [de la variable] que se 'asignara' al argumento de la funcion de hoja de calculo
cambia la linea que 'deposita' la formula
de => ActiveCell.Offset(0, 8).Formula = "=VLookUp(" & cValor & ",'Salarios'!" & cRango & ",3)"
a => ActiveCell.Offset(0, 8).Formula = "=VLookUp(""" & cValor & """,'Salarios'!" & cRango & ",3)"
observa que 'quedan' [como 'efecto'] TRIPLES_comillas_dobles 'delimitando' a la variable 'cValor'

Saludos,
Héctor.

Preguntas similares