Función de matrices VBA en Excel

En VBA, las matrices se utilizan para definir el grupo de objetos juntos, hay nueve funciones de matriz diferentes en VBA y son ARRAY, ERASE, FILTER, ISARRAY, JOIN, LBOUND, REDIM, SPLIT y UBOUND, todas estas son funciones incorporadas para la matriz en VBA, la función Array nos da el valor para el argumento dado.

Función de matriz de Excel VBA

La función de matriz es una colección de valores en una sola variable. Podemos suministrar una matriz a una subrutina en vba, funciones y propiedades. Las matrices VBA son una de las técnicas más utilizadas para almacenar más de un valor en la variable.

Ejemplos de la función de matriz VBA de Excel

En lugar de declarar muchas variables y almacenar los valores, podemos usar la matriz Excel VBA para almacenar el valor en una sola variable. Por ejemplo, mira el siguiente ejemplo

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

Código:

 Sub Array_Ex () Dim x As Integer Dim y As Integer x = 1 y = 2 Rango ("A1"). Valor = x Rango ("A2"). Valor = y End Sub 

En el ejemplo anterior, he declarado dos variables llamadas x & y. X tiene 1 como valor e Y tiene 2 como valor.

Ahora, observe el ejemplo de la función de matriz de Excel VBA con una sola variable.

Código:

 Sub Array_Ex () Dim x (1 To 2) As Integer Range ("A1"). Value = x (1) Range ("A2"). Value = x (2) End Sub 

Ahora, si ejecuta este código VBA, tendríamos valores en la celda A1 y A2.

Las variables de matriz devolvieron el resultado como cero. Esto se debe a que acabamos de declarar las variables como dos, pero no les hemos asignado ningún valor. Entonces necesitamos asignar valores a estas variables.

Código:

 Sub Array_Ex () Dim x (1 To 2) Como entero x (1) = 10 x (2) = 20 Rango ("A1"). Valor = x (1) Rango ("A2"). Valor = x (2 ) Fin Sub 

Ahora ejecute el código para obtener resultados.

Antes de ingresar los valores de las variables de matriz en las celdas, debemos asignar el valor a esas variables de matriz declaradas como asignamos las variables x (1) = 10 & x (2) = 20.

Ejemplo n. ° 1: insertar números de serie mediante matriz estática

Veamos el ejemplo del uso de una matriz estática para insertar números de serie. Esto es muy parecido al anterior.

Código:

 Sub StaticArray_Ex () Dim x (1 To 5) As Integer x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Rango ("A1"). Valor = x (1) Rango ("A2"). Valor = x (2) Rango ("A3"). Valor = x (3) Rango ("A4"). Valor = x (4) Rango ("A5" ) .Value = x (5) End Sub 

Ahora ejecute este código para insertar números de serie.

Ejemplo n. ° 2: insertar números de serie mediante matriz dinámica

Ahora veremos el segundo tipo de matriz, es decir, matriz dinámica.

Código:

 Sub DynamicArray_Ex () Dim x () Como Integer ReDim x (5) x (1) = 10 x (2) = 20 x (3) = 30 x (4) = 40 x (5) = 50 Rango ("A1" ) .Valor = x (1) Rango ("A2"). Valor = x (2) Rango ("A3"). Valor = x (3) Rango ("A4"). Valor = x (4) Rango (" A5 "). Valor = x (5) End Sub 

Ahora ejecute este código para obtener el resultado de los números de serie. Obtenemos el mismo resultado que el anterior.

Si observa que no hemos proporcionado la longitud de la matriz al declarar la variable, en su lugar, le hemos asignado el último valor de la matriz VBA utilizando la función VBA Redim. Redim contiene el último valor de la matriz que se va a pasar.

Ejemplo n. ° 3: crear una función Insertar nombres de meses mediante matriz

Hemos visto cómo trabajar con matrices en VBA. Ahora veremos cómo trabajar con una matriz para crear funciones VBA en Excel. La función no es más que una función definida por el usuario en VBA. Además de usar funciones integradas, Excel VBA también nos permite crear nuestras propias funciones.

Código:

 Función List_Of_Months () List_Of_Months = Array ("Ene", "Feb", "Mar", "Abr", "Mayo", "Jun", "Jul", "Ago", "Sep", "Oct", "Nov "," Dec ") Finalizar función 

El siguiente código creará una función que puede insertar meses en nuestra hoja de Excel.

Copie y pegue el siguiente código en su módulo.

Ahora guarde este código y cierre el Editor de VBA. Después de cerrar el editor de VBA, vaya a la hoja de trabajo y escriba la fórmula que acabamos de crear y debería ver la fórmula llamada List_Of_Months en su hoja de trabajo.

Abra la fórmula y presione enter. Obtendremos el nombre del primer mes, es decir, enero

Si inserta la fórmula una vez más, obtendríamos solo enero, no el próximo mes febrero. Por lo tanto, primero seleccione 12 columnas en una fila.

Ahora abra la fórmula en la celda D1.

Dado que hemos creado la fórmula con la matriz, necesitamos cerrar las fórmulas solo como fórmula de matriz. Así que mantén presionado Ctrl + Shift + Enter. Tendríamos todos los nombres de 12 meses.

Cosas para recordar

  • Hay dos tipos más de matrices disponibles, es decir, matriz bidimensional y matriz multidimensional.
  • Las matrices comienzan desde 0, no desde 1. Cero significa la primera fila y la primera columna.
  • La matriz es un tema importante que debe comprender para avanzar al siguiente nivel.
  • La variable de matriz será aquella que contenga muchos datos cada vez que avance al siguiente nivel.
  • Redim se utiliza para almacenar la última longitud de la matriz en tipo de matriz dinámica.