Documentos de Académico
Documentos de Profesional
Documentos de Cultura
http://damianexcel.blogspot.com/2017/09/algo-sobre-columnas-y-nombres-de-rangos.html 1/7
4/2/2018 ----excel y yo
Ver Mapa...
Blogs de interes:
David Rey
Pedro Wave
Entonces: como primer argumento le paso el Address de la celda (que en este ejemplo es $C$1), y en
segundo lugar le paso un "$" para indicarle que "corte" la cadena cada vez que encuentre ese "$". ¿Y Temas del Blog
cuántos $ hay en parámetro? Si, hay 2. por cuanto en M quedarán guardados C (en la primer posición) y 1,
en la segunda. Datos (41)
A nosotros nos interesa solo la primer posición de esa matriz, que contiene la letra que tanto estamos Formatos (22)
buscando: Funciones (81)
M = Split(ActiveCell.Address, "$") Macros (113)
MsgBox M(1) TusDudas (1)
Siendo el resultado final:
Varios (36)
compartilo
Share |
favoritos
llevame a tus favoritos
entradas x mes
entradas x mes
Páginas
Página principal
MapaDelBlog
Listo. Yo
¿Por qué donar?
Ya se que esto "sabe a poco" para quienes nunca usaron Split(expresión, delimitador), así que vamos a un
pequeño ejemplo para aclarar dudas y, de paso, aprender esta nueva y extremadamente útil función de
VBA.
Supongamos que necesitamos saber la cantidad de palabras que posee una oración, por ejemplo: estadisticas
"Que bueno es Damian Omar Silva haciendo macros" 237 post
Mas allá de tremenda humildad que encierra la frase, los programadores mas estructurados recorrerían toda 774 comentarios
la cadena en busca de un espacio en blanco y así contarían cada palabra.
Split no ahorrará esa tarea de bucles, x, y, mid(), etc, etc, etc, con este sencillo código: Donar
M=Split("Que bueno es Damian Omar Silva haciendo macros", " ")
Como primer argumento pasé la frase, y con el segundo (un espacio en blanco) le estoy indicando cual es el
"delimitador" y que a partir de él "corte" la frase y la coloque en una matriz, en donde cada posición será
una palabra. El código completo queda:
M=Split("Que bueno es Damian Omar Silva haciendo macros", " ")
http://damianexcel.blogspot.com/2017/09/algo-sobre-columnas-y-nombres-de-rangos.html 2/7
4/2/2018 ----excel y yo
MsgBox UBound(M)
Con UBound obtengo la cantidad de elementos dentro de una matriz. Si ejecuto lo escrito, este es el ¿Por qué donar?
resultado:
You are viewing "Algo
sobre columnas y
nombres de rangos"
No Comment Add your
own!
Filed under Funciones,
Macros Macros
Posted on martes,
septiembre 19, 2017
Subscribe through Atom
feed.
Exacto: la frase contiene 8 palabras divididas por un espacio (recordemos que, por defecto, todas las
matrices empiezan con cero: de 0 a 7 = 8 unidades)
Si queremos ver el resultado de cómo se ubicó cada palabra en la matriz, ahora si utilizaremos un bucle
recorriendo cada posición de dicha matriz y volcando su valor en una planilla:
En el ejemplo con la letra de la columna utilicé el $ como delimitador, en el caso de la humilde frase, el
espacio. Y así harán Uds. con los casos que se les presenten de ahora en mas, adecuando los parámetros en
función de las necesidades del problema a resolver.
http://damianexcel.blogspot.com/2017/09/algo-sobre-columnas-y-nombres-de-rangos.html 3/7
4/2/2018 ----excel y yo
celda "A1", dado que así logramos "setear" rangos con nombres acordes a su función.
En mas de una ocasión necesitamos saber que cantidad de nombres hay definidos en el libro y en donde se
encuentran cada uno de ellos (su respectiva celda).
La cuestión ahora es mas sencilla que el ejemplo anterior, dado que Excel (VBA) sí cuenta con objetos que
nos permitirán llevar a cabo la labor.
El siguiente código se encuentra detalladamente comentado para ir comprendiendo correctamente cada
línea del mismo.
Como observarán, el asunto es bastante fácil: cargo en un objeto (llamado, muy originalmente, "Nombres"),
todos los nombres de rango que existen en el libro. Luego con un bucle recorro desde 1 a Nombres.Count
(con la propiedad Count obtengo la totalidad de ítems) y los voy colocando en las celdas de la planilla de
cálculos creada a tales efectos:
Sub ListarReferencias
'en el libro
Sheets.Add
For x = To Nombres.Count
Next
End Sub
Y el resultado:
En la columna A vamos guardando el nombre del rango, con el uso de la propiedad Name. Y en B le
colocamos a qué celda está haciendo referencia, con la propiedad RefersToRange.Name
http://damianexcel.blogspot.com/2017/09/algo-sobre-columnas-y-nombres-de-rangos.html 4/7