RE:duda sencilla sobre arrays
ReDim [Preserve] nombre_variable(subíndices) [As tipo] [, nombre_variable(subíndices) [As tipo]] . . .
La sintaxis de la instrucción ReDim consta de las siguientes partes:
Parte Descripción
Preserve Opcional. Palabra clave utilizada para conservar los datos de una matriz existente cuando se cambia el tamaño de la última dimensión.
nombre_
variable Requerido. Nombre de la variable; sigue las convenciones estándar de nombre de variable.
subíndices Requerido. Dimensiones de una variable de matriz; se pueden declarar hasta 60 dimensiones múltiples. El argumento subíndices utiliza la sintaxis siguiente:
[inferior To] superior [,[inferior To] superior] . . .
Cuando no se declara explícitamente en inferior, el límite inferior de una matriz se controla mediante la instrucción Option Base. El límite inferior es cero si no hay ninguna instrucción Option Base.
tipo Opcional. Tipo de datos de la variable; puede ser Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (no admitida actualmente), Date, String (para cadenas de longitud variable), String * length (para cadenas de longitud fija), Object, Variant, un tipo definido por el usuario, o un tipo de objeto. Utilice una cláusula As tipo distinta para cada variable que defina. Para una Variant que contiene una matriz, tipo describe el tipo de cada elemento de la matriz, pero no cambia la Variant a algún otro tipo.
Comentarios
La instrucción ReDim se utiliza para asignar o cambiar el tamaño de una matriz dinámica que ya se ha declarado formalmente mediante las instrucciones Private, Public o Dim con paréntesis vacíos (sin subíndices de dimensiones).
Puede utilizar la instrucción ReDim repetidamente para cambiar el número de elementos y dimensiones de una matriz. Sin embargo, no puede declarar una matriz de un tipo de datos y luego usar ReDim para cambiar la matriz a otro tipo de datos, a menos que la matriz esté contenida en una Variant. Si la matriz está contenida en una Variant, el tipo de los elementos se puede cambiar mediante una cláusula As tipo, a menos que esté utilizando la palabra clave Preserve, en cuyo caso no se permiten cambios al tipo de datos.
Si utiliza la palabra clave Preserve sólo puede cambiar el tamaño de la última dimensión de la matriz y no es posible cambiar el número de dimensiones. Por ejemplo, si la matriz sólo tiene una dimensión, puede cambiar el tamaño de esa dimensión porque es la última y única dimensión. Sin embargo, si la matriz tiene dos o más dimensiones, sólo puede cambiar la dimensión de la última y todavía conservar el contenido de la matriz. El ejemplo siguiente muestra cómo puede aumentar el tamaño de la última dimensión de una matriz dinámica sin borrar ninguno de los datos existentes contenidos en la matriz.
ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)