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.

Matriz dinámica en Excel VBA

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:

Último elemento de la matriz

7. Ahora, para ver claramente por qué esto se llama matriz dinámica, agregue un número a la columna A.

Añade un número

8. Vuelva a hacer clic en el botón de comando.

Resultado de matriz dinámica

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:

Sin coto

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:

Con preservar

2/5 Completado! Obtenga más información sobre las matrices>
Siguiente capítulo: función y sub