Paseando a lo Largo de la Hoja de Excel con VBA

 

Hemos visto que podemos transferir datos desde y hacia la hoja de Excel a celdas fijas, especificas utilizando VBA. También es posible “navegar” a lo largo de la hoja transfiriendo datos desde y hacia las diferentes celdas, lo cual es útil si queremos leer listas o tablas de datos y asignarlos a arreglos (Arrays).

Para realizar esta navegación se pueden utilizar las propiedades Cells, Range y Offset en conjunción con el uso de variables, que actúen como índices para ir cambiando de fila o de columna en cada iteración. También se necesita algún tipo de rutina que cambie de índice en cada iteración.

Propiedad Cells

Usando la propiedad Cells(número_fila, número_Columna) y utilizando variables para los parámetros número_fila y número_columna, en lugar de constantes.

Por ejemplo, si tenemos un arreglo de nombre Xval, lo podemos poblar a partir de valores en las celdas utilizando la siguiente instrucción:

Xval(i)=Worksheets(“hoja1”).Cells(i , 2)

Los elementos de Xval van siendo añadidos a medida que el índice (i) va cambiando, lo cual hace que se lean los valores de la columna 2, fila por fila.

También podemos escribir resultados a la hoja utilizando esta instrucción:

Worksheets(“hoja1”).Cells(i , 4) = Xval(i)

En este caso estamos pasando a la hoja 1, columna 4, fila por fila los elementos del arreglo Xval.

Veamos cómo se aplica esto en un procedimiento.

clip_image002

Propiedad Range

Con la propiedad Range también se pueden utilizar variables para referirse a las filas.

Por ejemplo, para referirnos a celdas que están en la columna 2 (B) y queremos introducir una variable para las filas podríamos utilizar la siguiente instrucción:

Para leer datos de la hoja y asignarlos a elementos de un arreglo.

Xval(i) = Worksheets(“hoja1”).Range(“B”&i)

Para copiar los datos del arreglo a las celdas de la hoja.

Worksheets(“hoja1”).Range(“D”&i) = Xval(i)

El siguiente procedimiento se utiliza el método range con fila variable. Notar el uso del símbolo ampersand (&) delante de la variable que indica la fila.

clip_image004

Propiedad Offset

La propiedad offset(numF , numC) permite moverse el número de filas y columnas indicado, a partir de la celda seleccionada.

Range(“A1”).Offset(1,0) mueve 1 fila hacia abajo de la celda A1.

Range(“A1”).Offset(0,1) mueve 1 columna hacia la derecha de la celda A1.

En lugar de colocar un valor numérico, es posible utilizar una variable, e ir moviéndose a lo largo de una lista o tabla de datos.

Para leer datos de la hoja y asignarlos a elementos de un arreglo.

Xval(i) = Worksheets(“hoja1”). Range(“B5”).Offset(i, 0)

Para copiar los datos del arreglo a las celdas de la hoja.

Worksheets(“hoja1”). Range(“D5”).Offset(i, 0)= Xval(i)

En este caso todos los movimientos se hacen con referencia a la celda seleccionada.

clip_image006

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s