excel vba array array methods with examples
Este tutorial explicará la matriz VBA, varios tipos de matriz, matriz variante y métodos de matriz con la ayuda de ejemplos de programación:
Una variable de VBA normal es un marcador de posición que almacena el valor de un solo dato. Tiene una relación de 1 a 1, es decir, 1 variable por 1 valor.
Ahora imagine almacenar varios valores que son del mismo tipo. En lugar de crear varias variables, puede crear una sola variable y almacenar los mismos tipos de valores. Esta variable se llama ARRAY.
=> Visite aquí para ver la serie de capacitación VBA para todos
que sistema operativo es mejor para laptop
En este tutorial, conocerá qué es una matriz VBA, matrices unidimensionales y bidimensionales junto con los diferentes tipos de matrices como fija y dinámica. También entenderemos varios métodos de matriz que se utilizan en VBA.
Lo que vas a aprender:
Matriz de VBA
Las matrices son un tipo especial de variable que puede almacenar varios valores del mismo tipo de datos.
Por ejemplo, si tiene los nombres de 100 empleados, en lugar de crear 100 variables de tipo cadena de datos, puede crear una variable de matriz de tipo cadena y asignar 100 valores a la misma variable de matriz.
Matriz unidimensional
Una matriz que tiene todos los elementos en una sola fila o en una sola columna se denomina matriz unidimensional. Enumerar los nombres de todos los estudiantes de la clase en una sola columna es un ejemplo de una matriz unidimensional. Se declara como se muestra a continuación.
Dim arrayname (de límite inferior a UpperBound) como tipo de datos
Hay varias formas de declarar una matriz. A continuación se muestran algunos ejemplos.
Ejemplo:
# 1) Atenuar MyArrayEjemplo (0 a 3) como entero
Crea una matriz con la ubicación 0,1,2,3 que aceptará valores enteros.
# 2) Dim MyArray2 (3) como cadena
Tiene un valor predeterminado de 0 a 3 y crea una matriz con la ubicación 0,1,2,3 que aceptará valores de cadena.
# 3) Atenuar MyArray2 (13 a 15) como doble
Crea una matriz a partir de 13, es decir, 13, 14 y 15, y acepta valores Double. Hemos mencionado el límite inferior como 13, por lo que la matriz comenzará a asignar valores desde la ubicación 13 en lugar de 0.
Creemos un código simple y comprendamos las 3 formas de declaración de matriz.
Nota: Para escribir código VB, abra Microsoft Excel (las versiones compatibles son Excel 2007, 2010, 2013, 2016, 2019). Navegar a Pestaña Desarrollador -> Visual Basic (Alternativamente, use el atajo Alt + F11). En el editor de VB, haga clic en Insertar -> Módulo y pegue el siguiente código.
Considere el siguiente procedimiento que muestra los diferentes tipos de declaraciones.
|_+_|Presione F5 o presione el botón Ejecutar en la barra de herramientas para ejecutar el código.
Variable regular Vs variable de matriz
Ahora sabemos cómo funciona una matriz unidimensional. Así que tomemos un momento para comprender por qué las matrices son tan cruciales en los lenguajes de programación.
Suponga que necesita ingresar el salario de 5 empleados. Para lograr esto usando una variable regular, necesita crear 5 variables.
|_+_|Ahora construyamos el mismo código usando una variable Array.
|_+_|Aquí, acabamos de utilizar una variable de matriz que almacenará todos los nombres de los empleados. Suponga que necesita agregar 100 nombres de empleados más, entonces solo necesita cambiar el tamaño de la matriz y no tiene que crear una nueva variable.
Esto reducirá la cantidad de líneas en el código y, por lo tanto, lo hará fácilmente comprensible y legible.
Matriz bidimensional
Una matriz bidimensional tiene 2 índices: el primer índice representará las filas y el segundo índice representará la columna. Tiene varias filas y columnas y generalmente se representa en formato de tabla.
La declaración de una matriz de 2 dim es la siguiente:
Dim ArrayName (FirstIndex a LastIndex, FirstIndex a LastIndex) como tipo de datos.
Considere un ejemplo de almacenamiento de calificaciones de 2 estudiantes obtenidas en 3 materias. Entonces crearemos una matriz bidimensional que toma 2 filas y 3 columnas.
Comenzaremos la matriz de la fila 1 a la fila 2 y de la columna 1 a la columna 3.
|_+_|Presione F5 o presione el botón Ejecutar en la barra de herramientas para ejecutar el código.
Fila 2 y columna 2
Fila 1 y columna 3
Matrices fijas
Las matrices fijas también llamadas matrices estáticas tienen un límite inferior y un límite superior fijos y este tamaño no se puede cambiar en tiempo de ejecución. El tamaño de la matriz se especifica durante la declaración entre paréntesis. Todos los ejemplos anteriores son matrices fijas, ya que hemos mencionado su tamaño durante la declaración.
Las matrices fijas se utilizan generalmente cuando está seguro del tamaño de la matriz. Por ejemplo, la cantidad de días en una semana, puede crear una matriz con límite inferior 0 y límite superior 6 y asegurarse de que nunca cambiará su tamaño.
Matrices dinámicas
Las matrices dinámicas nos permiten cambiar el tamaño de la matriz durante el tiempo de ejecución. Son útiles cuando no está seguro del tamaño de la matriz. Suponga que en la admisión a la universidad, es posible que no esté seguro de cuántos estudiantes realmente obtendrán la admisión, por lo que no puede determinar el tamaño en el momento del diseño o la declaración.
La declaración de una matriz dinámica es similar a una matriz estática con paréntesis vacíos.
Atenuar empleado () como cadena
REDIM
Cuando queremos cambiar el tamaño necesitamos usar REDIM , debemos tener en cuenta que el límite inferior no se puede cambiar, solo podemos cambiar el límite superior de la matriz.
|_+_|
Ahora, sabemos que podemos cambiar el tamaño de la matriz durante el tiempo de ejecución, por lo tanto, podemos usar la declaración ReDim siempre que necesitemos aumentar el tamaño de una matriz. Intentemos aumentar el tamaño de la matriz una vez más y agregar un nuevo nombre de estudiante.
|_+_|
Habría observado que el resultado no mostraba los nombres de los estudiantes agregados antes, da un valor nulo. Esto se debe a que la declaración de Redim creará una nueva matriz con un nuevo tamaño y destruirá los valores antiguos.
ReDim Preserve
La declaración Represerve nos ayuda a superar la limitación de ReDim al preservar los valores antiguos y, por lo tanto, aumentar el tamaño de la matriz.
Reescribamos el código anterior usando ReDim Preserve.
|_+_|
Como hemos usado la palabra clave preserve, los valores ingresados previamente no se pierden y el nuevo valor se agrega exitosamente.
Matriz variante
Hasta ahora hemos visto una matriz que acepta el mismo tipo de valores. Ahora declaremos la matriz como una variante y almacenemos los distintos tipos de datos como String, Date, Long, Integer en una sola matriz.
Ejemplo:
|_+_|Métodos de matriz VBA
Existen varios métodos en las matrices VBA que nos ayudarán a realizar diferentes funciones, como se menciona a continuación.
Sl. No | Nombre | Sintaxis | Descripción |
---|---|---|---|
7 | Unirse | Unir (matriz de origen, (delimitador)) | Une varias subcadenas en una matriz y devuelve un valor de cadena. |
1 | Formación | Array (fraudulento) | Convierte una variante regular variable en una matriz. |
2 | Borrar | Borrar nombre de matriz | Se usa para reinicializar la matriz de tamaño fijo y libera la memoria para la matriz dinámica. |
3 | IsArray | IsArray (nombre de variable) | Determina si una variable es una matriz. |
4 | Lbound | LBound (ArrayName, (Dimension)) | Devuelve el subíndice más bajo de una matriz. |
5 | Ubound | UBound (ArrayName, (Dimension)) | Devuelve el subíndice más alto de una matriz. |
6 | División | Dividir (expresión, (delimitador, (límite, (comparar)))) | Divide una cadena en varias subcadenas y devuelve una matriz de base cero. |
8 | Filtrar | Filtrar (matriz de origen, coincidencia, (incluir, (comparar))) | El filtro nos permitirá buscar un coincidencia especificada de una matriz. |
Analicemos cada uno de ellos en detalle con un ejemplo.
# 1) Matriz
Declaremos una variable variante regular y usémosla como una matriz. Cuando desee cambiar una variable variante regular en una matriz, necesitamos usar un FORMACIÓN funciona como se muestra en el siguiente ejemplo.
Las funciones de matriz aceptan un argumento que contiene valores separados por comas. Estos valores se asignan como un elemento de la matriz.
|_+_|
Debe identificar una variable de matriz utilizando un índice, por lo tanto, en el ejemplo anterior, los valores se recuperan como varData (0) varData (2) varData (3).
# 2) Borrar
Esta función borrará todos los valores ingresados para una matriz de tamaño fijo y liberará espacio de memoria para una matriz dinámica.
Sintaxis: Erase arrayname
Erase tiene un comportamiento diferente para diferentes tipos de datos como se indica a continuación.
- Para un numérico fijo: Todos los valores se restablecen a cero.
- Para un tipo de datos de cadena fija: Todos los valores se restablecen a la longitud cero.
- Para una matriz dinámica: Libera la memoria utilizada por la matriz.
Ejemplo:
|_+_|Resultado antes de usar la función Borrar
Resultado después de usar Borrar
# 3) IsArray
Esta función se utiliza para determinar si la variable de entrada dada es una matriz o no. Devuelve verdadero si la variable ingresada es verdadera, de lo contrario, devuelve falso.
Sintaxis: IsArray (variablename)
Ejemplo:
|_+_|El resultado del primer Msgbox
El resultado del segundo cuadro de mensajes
# 4) Lbound
Devuelve el subíndice más bajo de la matriz especificada como argumento para la función Lbound.
Sintaxis: LBound (ArrayName, (Dimension))
ArrayName es el nombre de la matriz.
Dimensión es el valor entero opcional, si la matriz tiene varias dimensiones, puede especificar a qué dimensión desea determinar Lbound.
Ejemplo:
|_+_|# 5) Hacia arriba
Devuelve el subíndice superior de la matriz especificada como argumento en la función Ubound.
Sintaxis: UBound (ArrayName, (Dimension))
ArrayName es el nombre de la matriz.
La dimensión es el valor entero opcional, si la matriz tiene varias dimensiones, puede especificar qué dimensión desea determinar el Ubound.
Ejemplo:
|_+_|
# 6) Dividir
Devuelve una matriz con varias subcadenas derivadas de la cadena completa dada.
Sintaxis: Split (expresión, (delimitador, (límite, (comparar))))
- Expresión: Esta es la cadena completa que se utilizará para producir subcadenas.
- Delimitador: Usando el delimitador especificado, se generarán subcadenas. Si no se menciona, el espacio se considera como delimitador.
- Límite: Número de subcadenas que se devolverán.
- Comparar: Una vez producida la subcadena, puede utilizar diferentes opciones de comparación para probar el resultado.
Ejemplo: En el siguiente ejemplo, usamos delimitador como - y límite como 3.
Por lo tanto, la función de división separará toda la cadena en una subcadena según el delimitador. Pero también hemos mencionado el límite como 3, por lo que las subcadenas no se formarán después del límite 3. Por lo tanto, se omitirá el último delimitador.
|_+_|# 7) Únete
Esto es solo lo contrario de la división, Join creará una cadena combinando varias subcadenas.
Sintaxis: Join (sourcearray, (delimiter))
Matriz de origen: Matriz unidimensional de cadenas que desea unir en una.
Delimitador: El delimitador especificado se agregará después de cada cadena mientras se une.
Ejemplo:
|_+_|Los 3 valores están unidos y se coloca entre cada palabra, como hemos mencionado como delimitador.
# 8) Filtro
El filtro nos permitirá buscar una coincidencia específica de una matriz. Según los criterios del filtro, se devolverá el subconjunto de una matriz de cadenas.
Sintaxis: filtro (matriz de origen, coincidencia, (incluir, (comparar)))
Ejemplo:
|_+_|Este ejemplo buscará la palabra 'ayuda' en toda la cadena de matriz utilizando la función de filtro.
Preguntas frecuentes
P # 1) ¿Cómo obtener la longitud de una matriz en VBA?
Responder: Para obtener la longitud de una matriz, usamos la función Ubound. Esta función nos dará un subíndice superior de una matriz especificada.
P # 2) ¿Cómo declarar una matriz en VBA?
Respuesta: La matriz unidimensional se declara como se muestra a continuación.
Dim arrayname (de límite inferior a UpperBound) como tipo de datos
Ejemplo: Dim Myarray (0 a 2) como entero
Una matriz bidimensional se declara como se muestra a continuación.
qa analista entrevista preguntas y respuestas pdf
Dim ArrayName (FirstIndex a LastIndex, FirstIndex a LastIndex) como tipo de datos.
Ejemplo: Marcas oscuras (1 a 3, 0 a 2) como entero
P # 3) ¿Cómo convertir Range a Array?
Responder: Podemos usar la función Transponer para convertir el rango en una matriz. Este código creará Mys (10)
|_+_|
P # 4) ¿Qué es una variante de matriz en VBA?
Responder: Una matriz variante aceptará todo tipo de tipos de datos para su índice, es decir, puede almacenar diferentes tipos de valores en una sola matriz.
Ejemplo:
Dim arrayData (3) como variante
arrayData (0) = 'Vikas Vipal'
arrayData (1) = 411234567890 #
P # 5) ¿Qué es una declaración de base de opciones?
Responder: Se utiliza para declarar el subíndice inferior de una matriz y se utiliza al comienzo de un módulo. De forma predeterminada, el subíndice inferior es 0 si declara Option Base 1 en el nivel de módulo, entonces, para todas las matrices, el subíndice inferior predeterminado será 1.
Conclusión
En este tutorial, hemos aprendido cómo se usan las matrices en VBA y vimos cómo las matrices son diferentes de una variable regular. Exploramos matrices unidimensionales y bidimensionales con ejemplos. También discutimos arreglos fijos y dinámicos.
Las formas de cambiar el tamaño de la matriz durante el tiempo de ejecución y también preservar los valores usando redim preserve se discutieron con ejemplos. Finalmente, aprendimos métodos Array que nos ayudarán a realizar varias operaciones.
=> Consulte TODOS los tutoriales de VBA aquí
Lectura recomendada
- Tutorial de Excel VBA - Introducción a VBA en Excel
- Tipos de datos de VBA: tipos de datos numéricos y no numéricos en VBA
- Variables de VBA y opción explícita en VBA
- Invertir una matriz en Java: 3 métodos con ejemplos
- Tutorial de longitud de matriz de Java con ejemplos de código
- Matriz irregular en Java - Tutorial con ejemplos
- Tipos de datos de matriz: matriz int, matriz doble, matriz de cadenas, etc.
- String Array C ++: implementación y representación con ejemplos