Obtenga la longitud del array en VBA
- Obtenga la diferencia del índice más alto y más bajo para obtener la longitud del array en VBA
-
Use la función de hoja de trabajo
COUNTA
para obtener la longitud del array en VBA
Las matrices son herramientas populares en la programación de computadoras en las que puede guardar la información necesaria para su uso posterior o durante la ejecución del código. En casi todos los lenguajes de programación informática, los arrays están incluidos en su librería ya que la necesidad de guardar y recuperar información es a veces inevitable.
En VBA, obtener la longitud de un array significa contar el número de un elemento presente dentro del array. Para hacer esto, debe conocer los elementos más bajos y más altos del índice. Entonces, la diferencia entre el más alto y el más bajo sería la longitud del array.
Además, puede usar la función de la hoja de trabajo COUNTA
para obtener la misma información.
Este tutorial utiliza la diferencia de índice más alta/más baja y la función de hoja de trabajo COUNTA
para obtener la longitud en un array de VBA.
Obtenga la diferencia del índice más alto y más bajo para obtener la longitud del array en VBA
La lógica de este método es que podemos obtener la longitud del array restando el índice más bajo al índice más alto y luego sumando 1. Agregamos 1 ya que es necesario incluir el índice más bajo en la longitud del array.
El siguiente bloque de código demostrará cómo obtener la longitud del array de un array de un array de longitud fija. Tenga en cuenta que obtener solo el índice más alto para obtener la longitud del array no siempre es correcto, ya que hay casos en los que el índice más bajo no es igual a 0 y podría comenzar con índices diferentes.
Sub ArrayLengthDemo()
Dim stringArr(5 To 9) As String
stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"
Debug.Print "The array length of stringArr is " UBound(stringArr) - LBound(stringArr) + 1
End Sub
Salida ArrayLengthDemo
:
The array length of stringArr is 5
El bloque de código a continuación demostrará cómo obtener la longitud del array de un array de un array dinámica.
Sub ArrayLengthDemo()
Dim StringArr As Variant
StringArr = Array("Glen", "Yumi", "Katrina", "Myla", "Jose")
Debug.Print "The array length of StringArr is "; UBound(StringArr) - LBound(StringArr) + 1
End Sub
Salida ArrayLengthDemo
:
The array length of stringArr is 5
Se demostrará la implementación de funciones para obtener la longitud del array en el siguiente código. Será útil si la necesidad de obtener la longitud del array es recurrente.
Además, el siguiente código tiene una lógica adicional para detectar si la matriz que se va a medir es nula.
Public Function GetArrayLength(arr As Variant) As Integer
If IsEmpty(arr) Then
GetArrayLength = 0
Else
GetArrayLength = UBound(arr) - LBound(arr) + 1
End If
End Function
Sub GetArrayLengthDemo1()
Dim stringArr(5 To 9) As String
stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"
Debug.Print "The array length is " & GetArrayLength(stringArr)
End Sub
Sub GetArrayLengthDemo2()
Dim NullArr As Variant
Debug.Print "The array length is " & GetArrayLength(NullArr)
End Sub
Salida GetArrayLengthDemo1
:
The array length is 5
Salida GetArrayLengthDemo2
:
The array length is 0
Use la función de hoja de trabajo COUNTA
para obtener la longitud del array en VBA
un array es una colección de elementos estructurados de una manera única o multidimensional. Puede utilizar la función de hoja de trabajo COUNTA
para contar estos elementos en una sola línea de código.
El siguiente bloque de código demuestra cómo obtener la longitud del array utilizando la función de hoja de trabajo COUNTA
.
Sintaxis:
WorksheetFunction.CountA([ arrayName ])
Parámetro:
[arrayName] |
el array a medir |
La función de la hoja de trabajo COUNTA
está limitada solo a 30 elementos. Si se trata de un array grande, se sugiere el primer método.
Sub ArrayLengthDemo()
Dim stringArr(5 To 9) As String
stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"
Debug.Print "The array length of stringArr is " & WorksheetFunction.CountA(stringArr)
End Sub
Salida ArrayLengthDemo
:
The array length of stringArr is 5
Sub ArrayLengthDemo()
Dim StringArr As Variant
StringArr = Array("Glen", "Yumi", "Katrina", "Myla", "Jose")
Debug.Print "The array length of StringArr is " & WorksheetFunction.CountA(stringArr)
End Sub
Salida ArrayLengthDemo
:
The array length of stringArr is 5