Função VBA UBound do Excel
Com que frequência você surge com uma situação em que precisa mencionar o comprimento máximo ou o limite superior dos dados de uma matriz que trabalham com o Excel? Na maioria das vezes, certo? E como você encontra o mesmo? Talvez manualmente na maioria das vezes. No entanto, você pode automatizá-lo e obter o comprimento máximo ou o limite superior de uma matriz usando uma função VBA chamada UBound.
Além disso, tem a maneira mais bonita de percorrer. Por exemplo, se você estiver usando um loop For no seu array, definitivamente desejará fazer um loop de todos os elementos do array. Nesse caso, seria um trabalho tedioso descobrir o limite superior manualmente e mencioná-lo no loop. Também reduzirá a generalidade do código. Portanto, a função VBA UBound é útil nesses cenários.
UBound significa limite superior e fornece o limite superior ou o comprimento máximo da matriz no Excel VBA.
Fórmula para a função UBound no Excel VBA
A função VBA UBound do Excel possui a seguinte sintaxe.
UBound (Arrayname (, Dimension))
Onde,
- Nome da matriz : nome da matriz que você definiu. Este argumento é obrigatório / obrigatório.
- Dimensão: argumento opcional que especifica a dimensão de uma matriz. Seja uma matriz unidimensional, bidimensional ou multidimensional. Por padrão, ele assumirá a matriz unidimensional, se não for especificado.
Como essa função possui apenas dois argumentos, torna-se muito mais fácil lembrar a sintaxe dessa função.
Como usar a função UBound do Excel VBA?
Aprenderemos como usar uma função VBA UBound com alguns exemplos no Excel.
Você pode fazer o download deste modelo VBA UBound Excel aqui - Modelo VBA UBound ExcelExemplo # 1 - VBA UBound com matriz unidimensional
Siga as etapas abaixo para usar a função UBound no VBA.
Etapa 1: na guia Desenvolvedor, clique em Visual Basic para abrir o Editor de VB.
Etapa 2: Clique em Inserir e selecione a guia Módulo para adicionar um novo módulo em branco ao VBE.
Etapa 3: no VBE, comece a escrever a macro e defina o nome da variável.
Código:
Sub Onedm_Ubound () Dim IndiaCity (4) Como String End Sub
Aqui, a variável IndiaCity é definida com 5 elementos. O tipo de variável é uma sequência.
Nota: A matriz começa em 0 (zero). Portanto, essa matriz será composta por 5 elementos.Etapa 4: atribua valores aos elementos da matriz.
Código:
Sub Onedm_Ubound () Dim IndiaCity (4) Como String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune "End Sub
Aqui, o elemento zeroth possui um valor atribuído como "Mumbai", o primeiro elemento possui um valor atribuído como "Bengaluru" e assim por diante.
Etapa 5: Use a função UBound junto com MsgBox para obter o limite superior da matriz.
Código:
Sub Onedm_Ubound () Dim IndiaCity (4) Como String IndiaCity (0) = "Mumbai" IndiaCity (1) = "Bengaluru" IndiaCity (2) = "Hyderabad" IndiaCity (3) = "Delhi" IndiaCity (4) = "Pune O limite superior de "MsgBox" para a matriz é: "& UBound (IndiaCity) End Sub
Etapa 6: execute esse código pressionando F5 diretamente ou manualmente, pressionando o botão Executar no painel superior esquerdo. Uma caixa de mensagem será exibida com a mensagem " Limite superior para a matriz é: 4 ".
Observe que a função UBound não descobre o limite superior dos elementos da matriz. Ele apenas descobre o número máximo de elementos que o array contém.
Exemplo # 2 - VBA UBound com matriz bidimensional
Siga as etapas abaixo para usar a função UBound no VBA.
Etapa 1: defina uma variável que possa armazenar dados bidimensionais.
Código:
Sub TwoDm_UBound () Dim Array_Test (0 a 6, 1 a 8) como String End Sub
Etapa 2: defina uma nova variável Message e use-a em MsgBox. Essa variável nos ajudará a imprimir os limites superiores de ambas as dimensões simultaneamente.
Código:
Sub TwoDm_UBound () Dim Array_Test (0 a 6, 1 a 8) Como String Dim Message MsgBox Message End Sub Sub
Etapa 3: Agora, tente as seguintes instruções que permitem ao sistema imprimir as duas dimensões da matriz na mesma caixa de mensagem.
Código:
Sub TwoDm_UBound () Dim Array_Test (0 a 6, 1 a 8) Como String Dim Message Mensagem = "O limite superior da primeira dimensão é:" & UBound (Array_Test, 1) & vbCrLf Message = Message & "O limite superior da segunda dimensão é : "& UBound (Array_Test, 2) & vbCrLf MsgBox Fim da mensagem Sub
As duas instruções mencionadas no código acima permitem que o sistema imprima ambas as dimensões na mesma caixa de mensagem. A primeira instrução armazena o valor do limite superior da primeira dimensão na variável Message e termina a linha (vbCrLf). A segunda instrução adiciona o primeiro valor atribuído à variável Message e o combina com o limite superior das segundas dimensões com uma mensagem pop-up.
Como o vbCrLf é usado nas duas instruções, ele funciona como nova linha / retorno de carro aqui nas duas instruções.
Etapa 4: execute o código pressionando F5 ou o botão Executar e veja a saída.
Em linhas semelhantes, podemos ir até várias dimensões e ver o limite superior de cada uma delas.
Exemplo # 3 - Função UBound para atualizar os dados na planilha automaticamente
Suponha que você tenha um conjunto de dados como mostrado na captura de tela abaixo.
Esses dados são atualizados e você precisa copiar os dados atualizados de vez em quando. Agora, é realmente um trabalho tedioso sempre verificar as atualizações de dados e copiá-las para a nova planilha. Também consome muito tempo. Podemos tentar automatizá-lo usando a função UBound no VBA? Vamos ver.
Siga as etapas abaixo para atualizar os dados na planilha automaticamente usando a função VBA UBound:
Etapa 1: defina uma variável criando uma macro.
Código:
Sub Ex3_UBound () Dim DataUpdate () como variante End Sub
Etapa 2: ative a planilha que contém seus dados. Nesse caso, o nome da planilha é " Dados ".
Código:
Sub Ex3_UBound () Dim DataUpdate () como folhas de variantes ("Dados"). Ative End Sub
Etapa 3: atribua o intervalo à variável que acabamos de criar. Usaremos o intervalo de folhas ativadas para esse fim.
Código:
Sub Ex3_UBound () Dim DataUpdate () como folhas de variantes ("Dados"). Ative DataUpdate = Intervalo ("A2", Intervalo ("A1"). End (xlDown) .End (xlToRight)) End Sub
Etapa 4: adicione uma nova planilha ao seu Excel, onde os dados atualizados podem ser copiados e colados.
Código:
Sub Ex3_UBound () Dim DataUpdate () como folhas de variantes ("Dados"). Ative DataUpdate = Intervalo ("A2", Intervalo ("A1"). Fim (xlDown) .End (xlToRight)) Planilhas.
Etapa 5: Agora, use a linha de código abaixo que permite que os dados da planilha “Dados” sejam copiados e colados em uma planilha excel recém-criada automaticamente.
Código:
Sub Ex3_UBound () Dim DataUpdate () como folhas de variantes ("Dados"). Ative DataUpdate = Intervalo ("A2", Intervalo ("A1"). Fim (xlDown) .End (xlToRight)) Planilhas.Add Range (ActiveCell, ActiveCell.Offset (UBound (DataUpdate, 1) - 1, UBound (DataUpdate, 2) - 1)) = DataUpdate End Sub
O código acima deslocará as células da planilha “Dados” até o limite superior, que pode ser obtido pela função UBound usada e atribui o intervalo à variável DataUpdate.
Etapa 6: execute o código pressionando F5 ou o botão Executar e veja a saída.
Como você pode ver, há uma nova planilha adicionada na pasta de trabalho do Excel, onde todos os dados da planilha “Dados” são copiados automaticamente.
Este é um código dinâmico. O que quero dizer com dinâmica é que, embora eu adicione colunas e linhas, ela será automaticamente copiada para uma nova planilha.
Etapa 7: vamos adicionar algumas linhas e colunas aos dados e ver se eles realmente funcionam.
Etapa 8: pressione o botão Executar novamente após a atualização da folha de dados e veja a mágica.
Se você pode ver, uma nova planilha é adicionada (colorida) e uma nova coluna de Idade, juntamente com duas novas linhas, também é adicionada nessa planilha. Isso significa que, o que atualizarmos no arquivo mestre (Dados), esse código copiará tudo automaticamente e o colará em uma nova planilha.
Coisas para lembrar
- UBound fornece o limite superior / comprimento máximo de uma matriz e não o limite superior dos pontos de dados presentes em uma matriz.
- A matriz sempre começa na posição 0 como paralela à maioria das linguagens de programação como C, C ++, Python.
- Se sua matriz é multidimensional, você também deve especificar o argumento da dimensão, que aceita valores inteiros numéricos como 1, 2, 3 etc. 1 significa One-Dimension, 2 para Two-Dimensional e assim por diante.
Artigos recomendados
Este é um guia para a função VBA UBound. Aqui, discutiremos como usar a Função VB UBound do Excel, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -
- Função de divisão do VBA com exemplos
- Função Maiúscula do Excel
- VBA Match
- Função de TETO no Excel
- Como usar planilhas do VBA?