UBOUND ou também conhecido como Upper Bound, esta função em VBA é usada com sua função oposta que LBOUND ou também conhecida como função Lower Bound, o uso desta função é definir o comprimento de um array em um código e como o nome sugere UBOUND é usado para definir o limite superior da matriz.
Função VBA UBOUND
Como você sabe o comprimento máximo da matriz no Excel? Sim, podemos ver e atualizar manualmente o comprimento máximo do array, mas se você estiver fazendo tudo isso enquanto isso, hoje é o fim, porque temos uma função chamada UBOUND para determinar o comprimento máximo do array. Siga este artigo para ter mais conhecimento da função UBOUND no Excel VBA.
UBOUND significa Upper Bound. Freqüentemente, na codificação, podemos precisar encontrar o comprimento máximo do array. Por exemplo, MyResult (24) significa que o nome da matriz MyResult contém 25 valores porque a matriz começa do zero, não de um. Portanto, 24 significa +1, ou seja, 25 valores totais.
Aqui, o comprimento máximo do array é 24, em vez de fornecer o comprimento do array manualmente, podemos usar a função interna UBOUND para obter o comprimento máximo do array.
O código é: UBOUND (MyResult) ie UBOUND (24)
Portanto, a função UBOUND do VBA do Excel representa o limite superior do tamanho do array.
Como usar a função VBA UBound no Excel?
A fórmula do VBA UBOUND é muito simples, pois possui apenas dois parâmetros.
UBound (Arrayname [, Dimension])
- Nome do array: este é o nome do array que definimos. Por exemplo, no exemplo acima, MyResult é o nome da matriz.
- [Dimensão]: Se a matriz tiver mais de uma dimensão, precisamos especificar a dimensão da matriz. Se você ignorar, ele tratará a primeira dimensão por padrão.
A função Excel VBA UBOUND é muito útil para determinar o comprimento dos loops durante a execução dos loops.
Exemplos de função UBOUND no Excel VBA
Abaixo estão os exemplos práticos da função VBA UBound.
Você pode baixar este modelo de função VBA UBound aqui - modelo de função VBA UBound
Exemplo 1
Para iniciar o processo, deixe-me escrever o código simples. Siga as etapas abaixo para aplicar a função VBA UBOUND.
Etapa 1: inicie a macro do Excel e defina o nome da variável.
Código:
Sub Ubound_Example1 () Dim ArrayLength (0 a 4) como string
Etapa 2: atribuirei valores a este nome de array.
Código:
Sub Ubound_Example1 () Dim ArrayLength (0 a 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Amigo" ArrayLength (2) = "Bem-vindo" ArrayLength (3) = "to" ArrayLength (4) = End Sub "Classe VBA"
Passo 3: Agora usando uma caixa de mensagem com a função UBOUND veremos o comprimento máximo do array.
Código:
Sub Ubound_Example1 () Dim ArrayLength (0 a 4) As String ArrayLength (0) = "Hi" ArrayLength (1) = "Amigo" ArrayLength (2) = "Bem-vindo" ArrayLength (3) = "to" ArrayLength (4) = "Classe VBA" MsgBox "Comprimento do limite superior é:" & UBound (ArrayLength) End Sub
Etapa 4: execute este código, pressionando a tecla F5 ou você também pode executar o código manualmente, conforme mostrado na imagem abaixo.
a caixa de mensagem mostrará o número do limite superior da matriz que será mostrado na caixa de mensagem.
Assim, usando a função UBOUND do Excel VBA, podemos obter o comprimento do limite superior de um array.
Exemplo 2 - Usando a função UBOUND VBA do Excel para copiar os dados
Suponha que você tenha uma lista de dados em uma planilha do Excel como a abaixo.
Esses dados serão atualizados diariamente e você precisará copiar esses dados para a nova planilha sempre que ela for atualizada. Atualizar isso manualmente levará uma quantidade considerável de tempo em seu local de trabalho, mas vou mostrar um código de macro simples para automatizar isso.
Etapa 1: Crie uma macro e defina a variável de matriz.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant End Sub
Etapa 2: agora ative a folha de dados referindo-se ao seu nome.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Ative End Sub
Etapa 3: Agora atribua o intervalo de dados à variável definida usando o código a seguir.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Ative DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub
Etapa 4: Agora adicione uma nova planilha à pasta de trabalho.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Ative DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add End Sub
Etapa 5: Agora adicione os dados à planilha recém-adicionada usando a função Excel VBA UBOUND na forma do código abaixo.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Ative DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange End Sub
O código acima irá compensar as células pelo comprimento máximo retornado pela função UBOUND e este intervalo será igual ao valor do nome do array “ DataRange ”
Passo 6: Agora execute este código, ele irá colar o valor na nova planilha.
Este código é dinâmico porque mesmo quando os dados aumentam horizontalmente e verticalmente, eles tomam automaticamente o intervalo. Agora vou adicionar algumas linhas fictícias aos dados.
Agora irei executar mais uma vez este código, ele adicionará as linhas recém-adicionadas também.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Ative DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) Worksheets.Add Range (ActiveCell , ActiveCell.Offset (UBound (DataRange, 1) - 1, UBound (DataRange, 2) - 1)) = DataRange Erase DataRange End Sub
Coisas para lembrar
- UBOUND retorna o comprimento máximo da matriz.
- A matriz começa em 0, não em 1.
- Se você quiser o valor mais baixo do array, precisará usar o VBA LBOUND.
- Se a matriz tiver mais de uma dimensão, você também precisará especificar o número da dimensão.