Si el tamaño de su matriz aumenta y no desea corregir el tamaño de la matriz, puede usar la palabra clave ReDim . Excel VBA luego cambia el tamaño de la matriz automáticamente.
Agregue algunos números a la columna A.
Coloque un botón de comando en su hoja de trabajo y agregue las siguientes líneas de código:
1. Primero, declaramos la matriz denominada números. También declare dos variables de tipo Integer. Un tamaño con nombre y otro con nombre i.
Dim numbers() As Integer, size As Integer, i As Integer
Nota: la matriz aún no tiene tamaño. Los números, el tamaño y yo se eligen al azar aquí, puede usar cualquier nombre. Recuerde hacer referencia a estos nombres en el resto de su código.
2. A continuación, determinamos el tamaño de la matriz y lo almacenamos en la variable tamaño. Puede utilizar la función CountA de la hoja de trabajo para esto. Agregue la siguiente línea de código:
size = WorksheetFunction.CountA(Worksheets(1).Columns(1))
3. Ahora conocemos el tamaño de la matriz y podemos redimensionarla. Agregue la siguiente línea de código:
ReDim numbers(size)
4. A continuación, inicializamos cada elemento de la matriz. Usamos un bucle.
For i = 1 To size
numbers(i) = Cells(i, 1).Value
Next i
5. Mostramos el último elemento de la matriz usando un MsgBox.
MsgBox numbers(size)
6. Salga del Editor de Visual Basic y haga clic en el botón de comando en la hoja.
Resultado:
7. Ahora, para ver claramente por qué esto se llama matriz dinámica, agregue un número a la columna A.
8. Vuelva a hacer clic en el botón de comando.
Conclusión: Excel VBA ha cambiado automáticamente el tamaño de esta matriz dinámica.
9. Cuando usa la palabra clave ReDim, borra todos los datos existentes almacenados actualmente en la matriz. Por ejemplo, agregue las siguientes líneas de código al código creado anteriormente:
ReDim numbers(3)
MsgBox numbers(1
Resultado:
La matriz está vacía.
10. Cuando desee conservar los datos de la matriz existente al redimensionarla, utilice la palabra clave Preserve.
ReDim Preserve numbers(3)
MsgBox numbers(1)
Resultado:
2/5 Completado! Obtenga más información sobre las matrices>
Siguiente capítulo: función y sub