Como obter o comprimento de um array usando vba?

No VBA, obter o comprimento de um array significa contar o número de elementos que você possui nesse array. Para isso você precisa conhecer o elemento mais baixo e o elemento mais alto. Então, para conseguir isso, você pode usar as funções UBOUND e LBOUND que retornam o limite superior e o limite inferior, respectivamente.

Além disso, você também pode usar COUNTA, que é uma função de planilha. E neste tutorial veremos os dois métodos para que você possa utilizar qualquer um deles conforme sua conveniência.

Etapas para obter o tamanho de um array

Aqui temos uma tabela que contém uma lista de meses e a quantidade de vendas de cada mês.

comprimento do array vba
  1. Certifique-se de ter uma tabela declarada corretamente com linhas e colunas.
  2. Depois disso, mais duas variáveis (porque temos um array bidimensional) para armazenar os limites do array.
  3. Então você precisa usar uma fórmula na qual você precisa usar a função Ubound para obter o limite superior e depois Lbound para obter o limite inferior da matriz.
  4. Como você tem uma matriz bidimensional, ambos precisam estar vinculados às dimensões e definir esse valor nas variáveis.
  5. No final, multiplique os comprimentos obtidos de Ubound e Lbound como o limite superior e inferior.

Aqui está o 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

Observação: você deve estar se perguntando se temos um total de 13 linhas na tabela que compartilhei com você no início do artigo.

Mas usamos uma tabela de 13 linhas porque a primeira linha era um título. E aqui usamos uma função IF STATEMENT e ISEMPTY para verificar se o array declarado não contém nenhum 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 obter o comprimento do array

Como você sabe, um array é um conjunto de elementos estruturados de forma unidimensional ou multidimensional e você pode usar a função COUNTA ( função de planilha ) para contar esses elementos de uma só vez.

No código a seguir, você usou o mesmo array declarado anteriormente e, em seguida, usou uma variável para armazenar o número de elementos retornados pela função.

E como você pode ver, o resultado retornado é 24, que é o número total de elementos que temos no array.

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

Há uma coisa que você precisa cuidar: esse método não será ideal para usar em todas as situações, por isso é sempre bom usar o método que discutimos anteriormente.

Você também pode escrever código para verificar primeiro se o array declarado não está vazio.

 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)."

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *