Estructuras Cíclicas, Repetitivas, Parte IV

For Each – Next

Cuando se desea repetir una acción en cada uno de los elementos de una colección de objetos, o en cada uno de los elementos de un array, VBA tiene una estructura especifica para este fin, For Each – Next.

La sintaxis de esta estructura es:

For Each variable In Colección

Bloque de Declaraciones

Next [variable]

Donde Colección se refiere a una colección de objetos o a un array. Variable es un nombre para referirse a los elementos de una colección o array. Puede ser cualquier nombre. con tal de que coincida con el nombre utilizado para referirse a los elementos dentro del bloque de declaraciones, por ejemplo:

each-next-1

Aquí se ha creado un procedimiento que es activado por un botón. y aplica a la colección de celdas en la selección (La selección es un rango de celdas que esta seleccionada). el nombre cosa, se esta utilizando para referirse a cada una de las celdas en la selección. obsérvese que cuando se va a referir a cada celda utilizamos el nombre cosa.

podríamos haber utilizado cualquier nombre que quisiéramos, por ejemplo elemento, componente, vaina, caballo, vaca, etc., con tal de que donde se refiera a cada elemento se utilice el mismo nombre.

En el siguiente ejemplo vamos a utilizar la colección de hojas (worksheets) y le vamos a colocar la etiqueta (Tab) de color verde a cada una de las hojas del libro activo.

each-next-2

Aquí creamos el nombre de variable hoja, para referirnos a cada una de las hojas de la colección worksheets. observe que cada vez que nos vamos a referir a un elemento de la colección utilizamos el nombre hoja. El resultado del procedimiento ColorTab() es que le coloca el color verde a cada etiqueta de las hojas de la colección worksheets.

each-next-3

En el siguiente ejemplo vamos a utilizar un ciclo For Each – Next en una función para calcular el promedio de un rango de celdas.

each-next-4

Creamos una variable R para almacenar un rango de celdas que van a ser el argumento de la función. utilizamos el nombre elemento para referirnos a cada una de las celdas en el rango.

Podemos utilizar esta función desde la hoja de calculo, como cualquier otra función de Excel.

each-next-5each-next-6

Referencias Bibliográficas

Etheridge, D. (2007). Excel 2007 Programming, Your visual blueprint for creating interactive spreadsheets. Indiana: Wiley .

Korol, J. (2003). Learn Microsoft Excel 2002 VBA Programming with XML and ASP. Plano, Texas, USA: Wordware Publishing, Inc.

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