¿cómo obtener la longitud de una matriz usando vba?

En VBA, obtener la longitud de una matriz significa contar la cantidad de elementos que tiene en esa matriz. Para ello es necesario conocer el elemento más bajo y el elemento más alto. Entonces, para obtener esto, puede usar las funciones UBOUND y LBOUND que devuelven el límite superior y el límite inferior respectivamente.

Aparte de esto, también puedes usar CONTAR, que es una función de hoja de cálculo. Y en este tutorial veremos ambos métodos para que puedas utilizar cualquiera de ellos según tu conveniencia.

Pasos para obtener el tamaño de una matriz

Aquí tenemos una tabla que contiene una lista de meses y la cantidad de ventas para cada mes.

longitud-matriz-vba
  1. Asegúrese de tener una tabla declarada correctamente con filas y columnas.
  2. Después de eso, dos variables más (porque tenemos una matriz bidimensional) para almacenar los límites de la matriz.
  3. Luego, debe usar una fórmula en la que debe usar la función Ubound para obtener el límite superior y luego Lbound para obtener el límite inferior de la matriz.
  4. Como tiene una matriz bidimensional, ambos deben estar vinculados a las dimensiones y establecer este valor en las variables.
  5. Al final, multiplica las longitudes que obtuviste de Ubound y Lbound como límite superior e inferior.

Aquí está el código completo.

 Dim yearSales(1 To 12, 1 To 2) As Integer Dim iCount1 As Integer, iCount2 As Integer iCount1 = UBound(yearSales, 1) - LBound(yearSales, 1) + 1 iCount2 = UBound(yearSales, 2) - LBound(yearSales, 2) + 1 MsgBox iCount1 * iCount2

Nota: Debes preguntarte si tenemos un total de 13 filas en la tabla que compartí contigo al principio del artículo.

Pero usamos una tabla de 13 filas porque la primera fila era un título. Y aquí hemos utilizado una función IF STATEMENT y ISEMPTY para comprobar si la matriz declarada no contiene ningún elemento.

 Dim yearSales(1 To 12, 1 To 2) As Integer Dim iCount1 As Integer, iCount2 As Integer If IsEmpty(yearSales) = 0 Then MsgBox "This array has zero elements." Else iCount1 = UBound(yearSales, 1) - LBound(yearSales, 1) + 1 iCount2 = UBound(yearSales, 2) - LBound(yearSales, 2) + 1 MsgBox "This array has " & iCount1 * iCount2 & " element(s)."

Usando COUNTA para obtener la longitud de la matriz

Como sabes, una matriz es un conjunto de elementos estructurados de forma unidimensional o multidimensional y puedes usar la función CONTAR ( función de hoja de cálculo ) para contar estos elementos de una sola vez.

En el siguiente código, usó la misma matriz que declaró anteriormente y luego usó una variable para almacenar la cantidad de elementos devueltos por la función.

Y como puedes ver, el resultado que devolvió es 24, que es el número total de elementos que tenemos en la matriz.

 Dim yearSales(1 To 12, 1 To 2) As Integer iCount = WorksheetFunction.CountA(yearSales) MsgBox iCount

Hay una cosa que debes tener en cuenta: este método no será ideal para usar en todas las situaciones, por lo que siempre es bueno usar el método que comentamos anteriormente.

También puede escribir código para verificar primero si la matriz declarada no está vacía.

 Dim yearSales(1 To 12, 1 To 2) As Integer If IsEmpty(yearSales) = 0 Then MsgBox "This array has zero elements." Else iCount = WorksheetFunction.CountA(yearSales) MsgBox "This array has " & iCount & " element(s)."

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *