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 isso durante todo esse tempo, 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, um total de 25 valores.
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), ou seja, 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 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ê ignorá-lo, 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.
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 de 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 VBA do Excel, podemos obter o comprimento do limite superior de um array.
Exemplo 2 - Usando a função UBOUND do 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á um tempo considerável em seu local de trabalho, mas mostrarei 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

Passo 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 abaixo.
Código:
Sub Ubound_Example2 () Dim DataRange () As Variant Sheets ("Data Sheet"). Ative DataRange = Range ("A2", Range ("A1"). End (xlDown) .End (xlToRight)) End Sub

Step 4: Now add a new worksheet to the workbook.
Code:
Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate DataRange = Range("A2", Range("A1").End(xlDown).End(xlToRight)) Worksheets.Add End Sub

Step 5: Now add the data to the newly added sheet by using the Excel VBA UBOUND function in the form of the below code.
Code:
Sub Ubound_Example2() Dim DataRange() As Variant Sheets("Data Sheet").Activate 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

The above code will offset the cells by the maximum length returned by the UBOUND function, and this range will be equal to the value of the array name “DataRange.”
Step 6: Now run this code. It will paste the value to the new sheet.

This code is a dynamic one because even when the data increases horizontally and vertically, it will automatically take the range. Now I will add some dummy lines to the data.

Now I will once again run this code. It will now add the newly added lines as well.

Code:
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ê precisará especificar o número da dimensão também.