Poblando Arreglos: La Función Array

Para poblar un arreglo con una serie de valores, use la función Array. Esta función permite asignar rápidamente una lista de valores delimitados por comas a un arreglo, por ejemplo:

Array_de_Diez= Array(10, 20, 30, 40, 50, 60, 70, 80, 90 )

 

Para usar una función Array, simplemente declare una variable variant, entonces asigne los valores al arreglo usando la función Array. Se puede utilizar cualquier tipo de datos (Inclusive datos mezclados) pueden ser usados en la función Array.

La función Array crea matrices basados en cero, sin importar el valor que se establezca con Option Base, el cual es utilizado para establecer el límite inferior del arreglo. (Lomax, 1998)

Public Sub TestArray()

Dim TenArray As Variant

TenArray = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)

Range(“A5 “) = TenArray

End Sub
Este código coloca el primer elemento en la celda A5.

Array-1

Si se desea colocar más elementos del arreglo hay que crear un rango con mayor número de celdas. En este ejemplo se crea un rango de 4 celdas  A5:D5.

Public Sub TestArray()

Dim TenArray As Variant

TenArray = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)

Range(“A5:D5”) = TenArray

End Sub
Esto coloca los primeros 4 elementos en el rango A5:D5

Array-2

Si se desean copiar todos los elementos hay que crear un rango que tenga el mismo número de elementos del arreglo.

Public Sub TestArray()

Dim TenArray As Variant

TenArray = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)

Range(“A5:I5”) = TenArray

End Sub
Array-3

 

Si se coloca un rango con un número mayor de celda que los elementos del arreglo. Coloca #N/A en las celdas mayores que el número de elementos del arreglo.

Array-4

Public Sub TestArray()

Dim TenArray As Variant

TenArray = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)

Range(“A5:M5”) = TenArray

End Sub

 

Hasta ahora se ha visto la colocación de los elementos del arreglo en rangos que están en filas, ahora se verá que pasa cuando se trata de colocar en rangos de columna.

Public Sub TestArray()

Dim TenArray As Variant

TenArray = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)

Range(“A5:A14”) = TenArray

End Sub

Array-5

 

Se copia solo el primer elemento del arreglo en cada celda del rango. Esto indica que por defecto el array crea un arreglo que se despliega en las filas, es decir un vector fila, para colocar el arreglo de forma vertical, es decir vector columna hay que utilizar la función Transpose.

Public Sub TestArray()

Dim TenArray As Variant

TenArray = Array(10, 20, 30, 40, 50, 60, 70, 80, 90)

‘ Aplica la función Transpose

Range(“A5:A14”) = WorksheetFunction.Transpose(TenArray)

End Sub
Array-6

Referencias

Lomax, P. (1998). VB & VBA in a Nutshell: The Language. Sebastopol, CA, USA: O’Rilley.

 

 

 

 

 

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