Última linha do VBA - Como encontrar a última linha usada no Excel usando o código VBA?

Índice:

Anonim

Última linha do VBA do Excel

Encontrar a última linha em uma coluna é um aspecto importante ao gravar macro e torná-las dinâmicas. Como não preferimos atualizar os intervalos de células de vez em quando, quando estamos trabalhando com referências de células do Excel. Como codificador / desenvolvedor, você sempre prefere escrever um código dinâmico que possa ser usado em qualquer dado e atenda às suas necessidades. Além disso, sempre seria ótimo se você tivesse a última linha conhecida dos seus dados, para poder alterar dinamicamente o código conforme sua necessidade.

Vou apenas apontar um exemplo que itera a importância do código dinâmico.

Suponha que eu tenha os dados abaixo, com os funcionários e seus salários.

E veja o código abaixo:

Código:

 Sub Exemplo1 () Intervalo ("D2"). Valor = WorksheetFunction.Sum (Intervalo ("B2: B11")) End Sub 

Aqui, esse código imprime a soma dos salários de todos os funcionários (célula B2: B11 ) na célula D2 . Veja a imagem abaixo:

Agora, e se eu adicionar algumas células nesses dados e executar esse código novamente?

Logicamente falando, o código acima não resumirá todas as 14 linhas da coluna B. O motivo pelo qual é o intervalo que atualizamos em WorksheetFunction (que é B2: B11). É por isso que um código dinâmico que pode levar em consideração a última linha preenchida se torna mais importante para nós.

Neste artigo, apresentarei alguns métodos que podem ser úteis para descobrir a última linha de um determinado conjunto de dados usando o código VBA.

Como encontrar a última linha usada na coluna usando o VBA?

Abaixo estão os exemplos diferentes com métodos diferentes para encontrar a última linha de uma coluna usada no Excel usando o código VBA.

Você pode fazer o download deste modelo de Excel de última linha do VBA aqui - Modelo de Excel de última linha do VBA

Exemplo # 1 - Usando o método Range.End ()

Bem, esse método é o mesmo que usar a Ctrl + Seta para baixo no Excel para ir para a última linha não vazia. Em linhas semelhantes, siga as etapas abaixo para criar código no VBA para alcançar a última linha não vazia de uma coluna no Excel.

Etapa 1: Defina uma variável que pode receber valor para a última linha não vazia da coluna do Excel.

Código:

 Sub Example2 () Dim Last_Row As Long End Sub 

Aqui, a variável Last_Row é definida como LONG apenas para garantir que possa receber qualquer número de argumentos.

Etapa 2: use a variável definida para manter o valor da última linha não vazia.

Código:

 Sub Example2 () Dim Last_Row As Long Last_Row = End Sub 

Etapa 3: digite o código começando com CELLS (Rows.Count na frente de Last_Row = .

Código:

 Sub Example2 () Dim Last_Row As Long Last_Row = Células (Rows.Count End Sub 

Etapa 4: Mencione 1 após uma vírgula no código mencionado acima. O valor numérico 1 é sinônimo da primeira coluna na planilha do excel.

Código:

 Sub Exemplo2 () Dim Last_Row As Long Last_Row = Células (Rows.Count, 1) End Sub 

Esse código permite que o VBA descubra o número total de linhas (vazias + não vazias) presentes na primeira coluna da planilha do Excel. Isso significa que esse código permite que o sistema vá para a última célula do Excel.

Agora, e se você estiver na última célula do Excel e quiser subir até a última linha não vazia? Você usará Ctrl + Seta para cima, certo?

A mesma lógica que vamos usar na próxima linha de código.

Etapa 5: use uma combinação da tecla End e do xlUp para ir para a última linha não vazia no excel.

Código:

 Sub Exemplo2 () Dim Last_Row As Long Last_Row = Células (Rows.Count, 1) .End (xlUp) End Sub 

Isso levará você para a última linha não vazia no excel. No entanto, você queria um número de linha para o mesmo.

Etapa 6: use ROW para obter o número da última linha não vazia.

Código:

 Sub Exemplo2 () Dim Last_Row As Long Last_Row = Células (Rows.Count, 1) .End (xlUp) .Row End Sub 

Etapa 7: mostre o valor de Last_Row que contém o último número de linha não vazio usando MsgBox.

Código:

 Sub Exemplo2 () Dim Last_Row As Long Last_Row = Células (Rows.Count, 1) .End (xlUp) .Row MsgBox Last_Row End Sub 

Etapa 8: Execute o código usando o botão Executar ou pressionando F5 e veja a saída.

Resultado:

Etapa 9: Agora, vamos excluir uma linha e ver se o código fornece um resultado preciso ou não. Isso nos ajudará a verificar o dinamismo do nosso código.

Exemplo # 2 - Usando Range e SpecialCells

Também podemos usar a propriedade Range e SepcialCells do VBA para obter a última linha não vazia da planilha do Excel.

Siga as etapas abaixo para obter a última linha não vazia no Excel usando o código VBA:

Etapa 1: defina uma variável novamente como Long.

Código:

 Sub Example3 () Dim Last_Row As Long End Sub 

Etapa 2: comece a armazenar o valor na variável Last_Row usando o operador de atribuição.

Código:

 Sub Example3 () Dim Last_Row As Long Last_Row = End Sub 

Etapa 3: Inicie o intervalo de digitação ("A: A") .

Código:

 Sub Exemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A") End Sub 

Etapa 4: Use a função SpecialCells para descobrir a última célula não vazia.

Código:

 SubExemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) End Sub 

Esta função SpecialCells seleciona a última célula do seu Excel conforme está escrito entre parênteses ( xlCellTypeLastCell permite selecionar a última célula não vazia da sua planilha do Excel).

Etapa 5: Agora, use ROW para obter a última linha da sua planilha do Excel.

Código:

 Sub Exemplo3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row End Sub 

Isso retornará a última linha não vazia para você do seu excel.

Etapa 6: agora, atribua esse valor de Last_Row a MsgBox para que possamos ver o último número de linha não vazio na caixa de mensagem.

Código:

 Sub Example3 () Dim Last_Row As Long Last_Row = Range ("A: A"). SpecialCells (xlCellTypeLastCell) .Row MsgBox Last_Row End Sub 

Etapa 7: execute o código pressionando F5 ou o botão Executar, localizado na parte superior do canto esquerdo.

Resultado:

Você pode ver que o último número de célula não vazio é exibido por meio de MsgBox com referência à coluna A. Como mencionamos a coluna A sob a função Range ao definir a fórmula da variável.

Etapa 8: se excluirmos uma linha e pudermos executar esta fórmula. Vamos ver o que acontece.

Você pode ver que o sistema ainda atribuiu a contagem de linhas como 14. Embora eu tenha excluído uma linha e a contagem real de linhas seja 13, o sistema não capturou a contagem de linhas com precisão. Para o sistema capturar a contagem de linhas real, você precisa salvar a planilha e executar o código novamente.

Agora você pode ver a contagem real de linhas nesta captura de tela.

Exemplo # 3 - Usando Range.Find ()

Siga as etapas abaixo para obter a última linha não vazia no Excel usando o código VBA:

Etapa 1: defina uma variável por muito tempo.

Código:

 Sub Example4 () Dim Last_Row As Long End Sub 

Etapa 2: Agora, use o código a seguir para ver a última linha não vazia.

Código:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlAnterior, _ MatchCase: = False) .Row End Sub 

Aqui, a função FIND procura uma primeira célula não em branco. O Asterisk (*) é um operador curinga que ajuda a descobrir o mesmo.

A partir da célula A1, o sistema volta para a última célula da planilha e pesquisa no sentido inverso (xlAnterior). Ele se move da direita para a esquerda (xlByRows) e passa pela mesma planilha por todas as linhas em linhas semelhantes até encontrar uma linha que não esteja em branco (consulte o .ROW no final do código).

Etapa 3: use MsgBox para armazenar o valor da última linha não vazia e vê-lo como uma caixa pop-up.

Código:

 Sub Example4 () Dim Last_Row As Long Last_Row = Cells.Find (What: = "*", _ After: = Range ("A1"), _ LookAt: = xlPart, _ LookIn: = xlFormulas, _ SearchOrder: = xlByRows, _ SearchDirection: = xlAnterior, _ MatchCase: = False) .Row MsgBox Last_Row End Sub 

Etapa 4: execute o código e veja a saída como uma caixa pop-up que contém o último número da linha não vazio.

Resultado:

Coisas para lembrar

  • Final (Exemplo1) pode ser usado para descobrir a primeira célula / linha em branco ou a última célula / linha não vazia em uma determinada coluna usando o código VBA.
  • O final funciona na coluna única na maioria das vezes. Se você tiver dados em intervalos, seria difícil decidir qual coluna deve ser usada para descobrir a última linha não vazia.
  • Localizar (Exemplo3) funciona em um intervalo inteiro do ponto de início e descobre a última célula / linha não vazia em uma determinada coluna usando o código VBA. Também pode ser usado para descobrir a última coluna não vazia.

Artigos recomendados

Este é um guia para o VBA Last Row. Aqui discutimos como encontrar a última linha usada em uma determinada coluna, juntamente com alguns exemplos práticos e o modelo do Excel para download. Você também pode consultar os seguintes artigos para saber mais -

  1. Como usar a coluna de inserção do VBA?
  2. Como selecionar linhas e colunas do Excel?
  3. Visão geral das células do intervalo VBA
  4. Como adicionar células no Excel?