Matrices de Excel VBA

Excel VBA Array no es más que una variable que puede contener el mismo tipo de datos. Una matriz es un grupo de una variable que puede almacenar más de una variable. El nombre de la variable será el mismo pero puede contener valores diferentes en una sola variable. Una matriz de VBA es un tipo de variable que se utiliza para almacenar listas de datos del mismo tipo.

Si tenemos 5 celdas que contienen números, necesitamos declarar 5 variables para contener 5 números diferentes en el rango. Pero al usar una matriz podemos mantener 5 valores diferentes en una sola variable.

¿Cómo utilizar las matrices de Excel VBA?

Comprendamos cómo usar las matrices VBA de Excel y sus tipos con algunos ejemplos.

Puede descargar esta plantilla de Excel de matrices de VBA aquí - Plantilla de Excel de matrices de VBA

Ejemplo 1

Eche un vistazo al siguiente ejemplo. X es una variable que contiene el tipo de datos de entero.

Código:

 Sub Array_Example1 () Dim x As Integer x = 1 End Sub 

Ahora asigne un valor de 1 a la variable declarada x.

Insertemos el valor de 1 en la celda A1.

Código:

 Sub Array_Example1 () Dim x As Integer x = 1 Range ("A1"). Value = x 
 End Sub 

El valor de x es igual a 1 y en el rango, A1, el valor se insertará como el valor de x, es decir, el valor de x es 1. Ahora ejecute el código con la tecla F5 o manualmente para ver los resultados.

En el ejemplo anterior, x contiene solo una variable que es todo. Pero si quiero insertar 5 números consecutivos usando la variable única, necesito usar la variable de matriz de tipo que puede contener muchos valores de variable en un solo nombre de variable.

Ejemplo # 2

Ahora eche un vistazo al siguiente ejemplo. Un nombre de variable es xy el tipo de datos es LARGO. Pero al declarar la variable en sí, he abierto el paréntesis y mencioné del 1 al 5. Esto significa que la variable x contendrá 5 tipos diferentes de valores.

Código:

 Sub Array_Example () Dim x (1 a 5) Tan largo, i como entero Fin Sub 

Después de eso, he asignado los valores a cada variable. X (1) = 20 significa que la primera variable debe ser igual al valor de 20. X (2) = 25 significa que la segunda variable debe ser igual al valor de 25 y así sucesivamente.

Código:

 Sub Array_Example () Dim x (1 a 5) Tan largo, i como entero x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 End Sub 

Más tarde, he declarado una variable más llamada "I", este es el segundo tipo de una variable y contiene el tipo de datos de entero .

En el siguiente paso, he aplicado bucles FOR para insertar números asignados a la matriz en la primera columna. He establecido el valor de la variable i en 1 y he ordenado al ciclo que se ejecute de 1 a 5 veces. Cuando el ciclo se ejecuta por primera vez, el valor de i será igual a 1. CELLS (I, 1) .value = x (i) esto significa que por primera vez i es igual a 1, es decir, CELLS (1, 1) .value = x (1), en la primera fila, primera columna (Celda A1), el valor será el valor de la primera matriz ( x (1) ), es decir, 20.

Cuando el ciclo se ejecuta por segunda vez, el valor i se convierte en 2, es decir, CELLS (2, 1) .value = x (2), en la segunda fila, la primera columna (A2), el valor será el segundo valor de la matriz ( x (2) ) es decir, 25.

Código:

 Sub Array_Example () Dim x (1 a 5) Tan largo, i como entero x (1) = 20 x (2) = 25 x (3) = 44 x (4) = 78 x (5) = 96 Para i = 1 a 5 celdas (i, 1) .Value = x (i) Siguiente i End Sub 

De esta forma, cuando los bucles sigan ejecutándose, los valores seguirán cambiando. Cuando los ciclos se ejecutan por tercera vez, el valor de la celda A3 será 44, el cuarto ciclo se ejecutará.

Después de ejecutar el código con la tecla F5 o manualmente, obtendremos resultados como se muestra a continuación.

Tipos de matrices en Excel

Las matrices tienen diferentes tipos en VBA. Hay cinco tipos de matrices disponibles en Excel.

  • Matriz estática
  • Matriz dinámica
  • Matriz unidimensional
  • Matriz bidimensional
  • Matriz multidimensional

Matriz estática

En este tipo de matriz, la longitud de la matriz está predeterminada de antemano y permanece constante.

Código:

 Sub Static_Example () Dim ArrayType (1 a 3) como entero ArrayType (1) = 0 ArrayType (2) = 1 ArrayType (3) = 2 Cells (1, 1) .Value = ArrayType (1) Cells (1, 2) .Value = ArrayType (2) Celdas (1, 3) .Value = ArrayType (3) End Sub 

En el código anterior, la longitud de ArrayType se determina de antemano como 1 a 3 y el tipo de datos es Integer.

Después de ejecutar el código con la tecla F5 o manualmente, obtendremos resultados como se muestra a continuación.

Matriz dinámica

En este tipo de matriz, la longitud de la matriz no está predeterminada de antemano.

Código:

 Sub Dynamic_Example () Dim ArrayType () como variante ReDim ArrayType (3) ArrayType (1) = "My Name" ArrayType (2) = "is" ArrayType (3) = "Excel" Cells (1, 1) .Value = ArrayType (1) Celdas (1, 2) .Value = ArrayType (2) Celdas (1, 3) .Value = ArrayType (3) End Sub 

En este tipo de matriz, los datos son Variante y la longitud no se determina aquí. Después de declarar la variable, he asignado la longitud de la matriz utilizando la función ReDim . Esta matriz insertará los valores como esta Celda A1 = Mi nombre, Celda B1 = es, Celda C1 = Excel.

Matriz unidimensional

En este tipo de matriz, la longitud está determinada pero en una dimensión funciona.

Código:

 Sub One_Dimensional () Dim OneDimension (1 a 3) como cadena OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 End Sub 

Mostrar estos valores en el cuadro de mensaje de VBA.

Código:

 Sub One_Dimensional () Dim OneDimension (1 a 3) como String OneDimension (1) = 40 OneDimension (2) = 50 OneDimension (3) = 15 MsgBox OneDimension (1) & ", " & OneDimension (2) & ", " & OneDimension (3) End Sub 

Ejecute este código usando la tecla F5 o manualmente y obtendremos el siguiente resultado.

Matriz bidimensional

En este tipo de matriz, la longitud se determina en dos dimensiones y funciona.

Código:

 Sub Two_Dimensional () Dim TwoDimension (1 a 2, 1 a 2) Tan largo Dim i As Integer Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 End Sub 

Ahora para almacenar estos valores en las celdas debajo del código.

Código:

 Sub Two_Dimensional () Dim TwoDimension (1 a 2, 1 a 2) Tan largo Dim i As Integer Dim j As Integer TwoDimension (1, 2) = 40 TwoDimension (2, 1) = 50 TwoDimension (1, 1) = 15 TwoDimension (2, 2) = 10 Para i = 1 a 2 Para j = 1 a 2 celdas (i, j) = TwoDimension (i, j) Siguiente j Siguiente i Fin Sub 

Esto almacenará los datos como a continuación.

Matriz multidimensional

En este tipo de matriz, la longitud está determinada pero en multidimensional, funciona.

Código:

 Sub Multi_Dimensional () Dim TwoDimension (1 a 3, 1 a 2) Tan largo Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 

Si observa el código anterior en primer lugar, he declarado la matriz como 1 a 3 y luego 1 a 2. Esto significa que cuando escribo la matriz en primer lugar solo puedo usar de 1 a 3 números, pero en el segundo espacio, solo puedo usar 1 a 2 no 1 a 3.

Usando Loop podemos insertar valores en las celdas. He usado dos bucles para una matriz multidimensional.

Código:

 Sub Multi_Dimensional () Dim TwoDimension (1 a 3, 1 a 2) Tan largo Dim i As Integer Dim j As Integer MultiDimension (1, 1) = 15 MultiDimension (1, 2) = 40 MultiDimension (2, 1) = 50 MultiDimension (2, 2) = 10 MultiDimension (3, 1) = 98 MultiDimension (3, 2) = 54 Para i = 1 a 3 Para j = 1 a 2 Celdas (i, j) = MultiDimension (i, j) Siguiente j Siguiente i End Sub 

Después de ejecutar el código con la tecla F5 o manualmente, obtendremos resultados como se muestra a continuación.

Cosas para recordar

  • Una matriz contará los valores desde cero, no desde 1.
  • La matriz (0, 0) significa la primera columna de la primera fila.
  • Este archivo macro de Excel debe guardarse como un libro de trabajo habilitado para macros.
  • En el caso de la matriz dinámica, debemos asignar el valor de la matriz utilizando la función REDIM en VBA.

Artículos recomendados

Esta ha sido una guía de matrices de VBA. Aquí discutimos los Tipos de matrices en VBA y cómo usar las matrices VBA de Excel junto con algunos ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. ENCONTRAR Función en Excel con ejemplos
  2. ¿Qué es la función VBA en Excel?
  3. Guía para el objeto de rango VBA
  4. ¿Cómo utilizar la función VBAOKUP VBA?

Categoría: