Ranges

¿Hola resulta que tengo que dar nombre a un comjunto de datos de rangovariable desde VB Cómo puedo hacerlo?
Gracias. Luz

1 Respuesta

Respuesta
1
Si entiendo bien tu pregunta tienes un conjunto de datos almacenados en rangos que varían de tamaño y quieres asignar un nombre a cada rango, si es así puedes utilizar este código
ActiveWorkbook.Names.Add Name:="MIRANGO", RefersToR1C1:= "=Hoja1!R1C1:R5C5"
El código anterior asigna el nombre "MIRANGO" a la selección A1:E5
Por lo que cada vez que cambien tus rangos tendrás que redefinirlos
Y si quieres borrar un nombre de rango puedes usar
ActiveWorkbook.Names("nombrerango").Delete
Espero te sirva, si tienes dudas puedes pedir un aclaración,
Buena Suerte
Víctor Mateluna
Hola he probado lo que me has dicho y ma va bien pero el problema que tengo es que es el usuario el que mete los datos por lo he hecho un contador para los datos que meta el usuario pero una vez que haya metido los datos y contados por el contador, ¿Cómo puedo usar lo que me has dicho? No sé si me explico pienso que tendría que poner algo como:
ActiveWorkbook.Names.Add Name:="MIRANGO", RefersToR1C1:= "=Hoja1!R1C1:R?C?
Ya que el numero de columna y de fila los tengo a partir de 2 contadores y los he definido como 2 integer llamados filas y columnas por lo que tendría que poner algo como
ActiveWorkbook.Names.Add Name:="MIRANGO", RefersToR1C1:= "=Hoja1!R1C1:R("filas")C("columnas")
Pero no funciona! ¿Sabes cómo lo tengo que hacer?
Muchas Gracias. Saludos. Luz
No entendí muy bien tu planteamiento, pero creo que estas bien encaminada, ahora te puedo hacer una acotación respecto al siguiente código
ActiveWorkbook.Names.Add Name:="MIRANGO", RefersToR1C1:= "=Hoja1!R1C1:R("filas")C("columnas")
ActiveWorkbook.Names.Add Name:="MIRANGO",
Esta bien pero el tipo de dato que conforma la referencia RefersToR1C1:= es de un tipo String (Por eso esta entre comillas""), por lo que si quieres utilizar tus contadores como índices de fila y columnas tendrías que modificar la ultima parte de tu código de la siguiente forma.
RefersToR1C1:= "=Hoja1!R1C1:R" & CStr(filas) & "C" & CStr(columnas)
Lo anterior transforma tus índices enteros en cadenas, por lo que podrías utilizarlo para comenzar tu rango de datos de cualquier otra celda no solo "A1", además te recuerdo que los enteros tienen un tamaño limitado por lo que si tu rango de datos es más amplio es preferible utilizar un índice tipo long para las filas y integer para las columnas.
Espero haber contestado tu duda si no es así, pide una aclaración y explicame con más detalles
Buena suerte
Víctor Mateluna
Gracias por la respuesta creo que has dado justo en el clavo, aún no lo he probado pero con lo que me has dicho he entendido un par de cosas que no tenía ni papa de porque eran. Saludos. Luz

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas