300 Ejemplos

Matriz dinámica

Dynamic Array

Si el tamaño de su matriz aumenta y no desea arreglar el tamaño de la matriz, puede usar el ReDim palabra clave . Excel VBA luego cambia el tamaño de la matriz automáticamente.





Agregue algunos números a la columna A.

cuántos días laborables desde la fecha hasta la fecha

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.



Ningunonúmeros()Como Entero, TallaComo Entero, IComo Entero

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 usar la función CountA de la hoja de trabajo para esto. Agregue la siguiente línea de código:

size = WorksheetFunction.CountA (Hojas de trabajo (1) .Columnas (1))

3. Ahora conocemos el tamaño de la matriz y podemos redimensionarla. Agregue la siguiente línea de código:

ReDimnúmeros (tamaño)

4. A continuación, inicializamos cada elemento de la matriz. Usamos un bucle.

Parai = 1ParaTalla
números (i) = Celdas (i, 1) .Valor
próximoI

5. Mostramos el último elemento de la matriz usando un MsgBox.

Números de MsgBox (tamaño)

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

redondear al 5 más cercano en Excel

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:

ReDimnúmeros (3)
Números de MsgBox (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 Preservarnúmeros (3)
Números de MsgBox (1)

Resultado:

cómo clasificar cuando hay empates

Con preservar

2/5 Completado! Obtenga más información sobre las matrices>
Ir al capítulo siguiente: Función y Sub



^