Matriz de declaración de VBA - ¿Cómo declarar matrices en VBA?

Matriz de declaración de Excel VBA

La declaración de matriz en VBA es muy similar a la de las variables, se realiza mediante la misma declaración dim o declaración pública o privada estática, la única diferencia entre declarar una matriz y declarar una variable es que al declarar una matriz tenemos que proporcionar un tamaño de una matriz que es el límite superior de la matriz y el límite inferior de la matriz.

En el código VBA, podemos declarar una única matriz de variables que puede contener el número de variables en lugar de declarar variables individuales. Esto puede ayudar a reducir la cantidad de líneas en el código.

La matriz es un tipo de variable que puede contener más de un valor, a diferencia de las variables regulares que solo pueden contener un valor a la vez. La matriz es una versión avanzada de la declaración de variables en VBA. Por ejemplo, imagine una situación en la que desee asignar 5 nombres de estudiantes a las variables y, en la práctica general, declaramos cinco variables para las cinco variables que asignamos a los estudiantes individuales uno por uno; a continuación se muestra el código de ejemplo del mismo.

Código:

Sub Array_Example () Dim Student1 como cadena Dim Student2 como cadena Dim Student3 como cadena Dim Student4 como cadena Dim Student5 como cadena End Sub

En lugar de declarar tantas variables, ¿qué tal la idea de declarar una única matriz de variables que puede contener todos los nombres de los estudiantes?

Sí, esto es posible declarando la matriz en VBA.

Ejemplos

Ejemplo 1

Para declarar, no necesitamos hacer ningún código VBA especial. Más bien, debemos seguir conceptos simples.

Primero, inicie el subprocedimiento.

Código:

Sub Array_Example () End Sub

Ahora, como de costumbre, declare una variable como una cadena.

Código:

Sub Array_Example () Dim Student As String End Sub

Una vez que se declara la variable, ahora asegúrese de cuántos valores debe contener. En este caso, quiero almacenar los nombres de cinco estudiantes, por lo que ahora necesitamos fijar el tamaño de la matriz, es decir, de 1 a 5. Proporcione lo mismo a la variable entre paréntesis.

Código:

Sub Array_Example () Dim Student (1 a 5) As String End Sub

Ahora, para esta única variable, podemos almacenar 5 nombres de estudiantes.

Código:

Sub Array_Example () Dim Student (1 a 5) As String Student (1) = "John" Student (2) = "Peter" Student (3) = "Ricky" Student (4) = "Michael" Student (5) = Sub final de "Anderson"

Mire cuántas líneas hemos reducido al declarar la variable como una matriz. Esta es una forma de hacerlo. Todavía podemos acortar este código encerrándolo dentro de los bucles en VBA.

Ahora, por ejemplo, los mismos cinco nombres que tengo en las celdas de la hoja de trabajo.

Ahora quiero mostrar estos números en el cuadro de mensaje en VBA; ok, declaremos una variable más para bucles como tipo de datos Integer.

Código:

Sub Array_Example () Dim Student (1 a 5) como cadena Dim K como entero End Sub

Como de costumbre, he conservado la variable de matriz de 1 a 5 tamaños.

Ahora abra el bucle FOR NEXT en VBA, y dado que tenemos cinco nombres, ingrese el límite de 1 a 5.

Código:

Sub Array_Example () Dim Student (1 a 5) Como cadena Dim K Como entero para K = 1 a 5 Siguiente K End Sub

Para asignar valores a la variable de matriz, no es necesario seguir la forma anterior de mostrar al Estudiante (1), Estudiante (2) de esta manera para la variable de bucles de suministro de posición de números "k".

Código:

Sub Array_Example () Dim Student (1 a 5) Como cadena Dim K Como entero para K = 1 a 5 Student (K) = Siguiente K End Sub

Para esta variable de matriz, necesitamos los valores de la hoja de trabajo, por lo que el uso de la propiedad CELLS obtiene los valores de la hoja de trabajo.

Código:

Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer For K = 1 To 5 Student (K) = Cells (K, 1) .Value Next K End Sub

Ahora, a través del cuadro de mensaje, muestre el valor de la variable de matriz.

Código:

Sub Array_Example () Dim Student (1 to 5) As String Dim K As Integer For K = 1 To 5 Student (K) = Cells (K, 1) .Value MsgBox Student (K) Next K End Sub

Ahora ejecuta el código. En el cuadro de mensaje, veremos el nombre. Vuelva a presionar Ok para ver el segundo nombre. Así, presionando Ok, podemos ver los cinco nombres.

Ejemplo n. ° 2: matrices bidimensionales

We have seen above how the array works, now we will see to dimensional arrays. Two-dimensional arrays concentrate on both rows and columns.

In the above example, we have determined the array’s size as 1 to 5; this either concentrates on rows or columns.

By using two-dimensional arrays, we can concentrate on both rows and columns. For this, we need to enclose two loops.

First, define the variable then late we will decide about the size of the array.

Code:

Sub Two_Array_Example() Dim Student As String End Sub

First, decide row size then decide the column length.

Code:

Sub Two_Array_Example() Dim Student(1 To 5, 1 To 3) As String End Sub

For this, I have structured the data for student names, marks, and grade status.

Now come back to the coding window.

Declare two more variables for a loop.

Code:

Sub Two_Array_Example () Dim Student (1 a 5, 1 a 3) As String Dim K As Integer, J As Integer End Sub

Ahora encierre el bucle, como se muestra a continuación.

Código:

Sub Two_Array_Example () Dim Student (1 to 5, 1 to 3) As String Dim k As Integer, J As Integer For k = 1 To 5 For J = 1 To 3 Worksheets ("Student List"). Seleccione Student (k, J) = Celdas (k, J) .Valor Hojas de trabajo ("Copiar hoja"). Seleccionar celdas (k, J) .Valor = Estudiante (k, J) Siguiente J Siguiente k Fin Sub

Lo que esto hará es copiar los datos de la hoja "Lista de estudiantes" y pegarlos en "Hoja de copia".

Cosas para recordar

  • La matriz es un concepto amplio; esta es solo una parte introductoria.
  • Necesita conocimientos avanzados de codificación para comprender la declaración de matriz.
  • Cuanto más uses matrices en tu código, más te acostumbrarás.

Articulos interesantes...