La Función Array

Otra forma de crear un arreglo dentro de VBA es utilizando la función Array, esta permite crear un arreglo unidimensional a partir de una lista de datos.

La sintaxis de la función Array es la siguiente:

Nombre Arreglo= Array(listado de datos separados por coma)

Los Arreglos creados con la función Array tienen las siguientes características:

1.- La función Array siempre crea un arreglo de tipo Variant.

2.- El arreglo creado siempre es de base 0, sin importar el tipo de base creado con el comando Option Base.

3.- Como el arreglo es de tipo variant se puede utilizar cualquier tipo de dato dentro del arreglo. Incluso se pueden utilizar variables.

4.- Cada elemento del arreglo tendrá un índice que dependerá del orden en que aparece dentro de la lista, comenzando por el índice cero para el primer elemento. Para referirse a un elemento en particular utilizar el nombre del arreglo seguido del índice entre paréntesis.

5.- El arreglo creado corresponderá a un rango horizontal, es decir a lo largo de una fila. Si se desea copiar a un rango de celdas verticales hay que utilizar la función Transpose.

6.- Para referirse al arreglo completo se utiliza el nombre del arreglo sin los paréntesis.

Ejemplo 1. Crear un arreglo de texto (string)

ArrName=Array(“Juana”, “Pedro”, “Luis”, “Maria”)

Cuando se utilizan texto (string) hay colocar los elementos entre comillas.

clip_image002

Range(“B3:E3”) = ArrName

coloca los elementos del arreglo en el Rango B3:E3. El número de celdas del rango debe coincidir con el número de elementos del arreglo. Si el rango contiene mas celdas que elementos del arreglo, colocara #N/A en las celdas adicionales. Si el rango contiene menos celdas, colocara solo los elementos correspondientes a esas celdas, sin colocar los elementos restantes.

Range(“D6”)=ArrName(0)

Coloca el elemento con índice 0 (primer elemento del arreglo) en la celda D6.

Range(“B6:B9”) = WorksheetFunction.Transpose(ArrName)

Utiliza la función Transpose para transponer el arreglo y colocarlo en un rango de celdas vertical.

Ejemplo 2. Crear un arreglo numérico

ArrX=Array(10, 20, 30, 40, 50, 60, 70)

clip_image004

Aquí en lugar de utilizar la función Transpose se utilizó la propiedad Offset para moverse fila por fila a lo largo de la columna B, utilizando la celda B1 como celda activa de referencia.

Range(“B1”). Select

Selecciona la celda B1. y la convierte en la celda activa (ActiveCell).

ActiveCell=ArrX(0)

Coloca el primer elemento del arreglo en la celda activa, B1.

ActiveCell.Offset(1, 0) = ArrX(1)

mueve una fila hacia abajo de la celda activa y coloca el elemento ArrX(1)

ActiveCell.Offset(2, 0) = ArrX(2)

mueve dos filas hacia abajo de la celda activa y coloca el elemento ArrX(2), y así continua con el resto de elementos.

Ejemplo 3. Crear un arreglo de variables

a=50,

b=100

c=150

d=200

ArrB=Array(a, b, c, d)

Donde a, b, c, d son variables ya definidas. No hay que colocarlas entre comillas, porque si no los consideraría texto.

clip_image006

Range(“B17”)=ArrB(0)

coloca el valor de la variable a (elemento ArrB(0)), en la celda B17. En este caso 50.

Ejemplo 4. Crear un arreglo con datos mezclados: texto y números

ArrMixed=Array(“Juana”, 20, “Luis”, 50)

Las cadenas de texto entre comillas.

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