Como você pode encontrar a última célula contendo dados no Excel automaticamente?

Desvantagens do .End(xlUp) Method

  • Se houver uma célula em branco no meio dos dados, o resultado poderá ser impreciso porque o VBA será interrompido antes de atingir os últimos dados reais.
  • Se alguma célula for mesclada, esse método pode não funcionar bem porque o Excel considera as células mescladas como uma única unidade.

3. Encontrando a última coluna com dados usando .End(xlToLeft)

O  método .End(xlToLeft) no Excel VBA funciona para localizar a última coluna que contém dados em uma linha específica.

Funciona de forma semelhante a pressionar Ctrl + ← (seta para a esquerda) no Excel:

  • Comece na coluna mais à direita da linha.
  • Mova para a esquerda até encontrar a última coluna com dados.
  • Gera o número de colunas em que os dados foram encontrados pela última vez.

Exemplo de código VBA para localizar a última coluna

O código a seguir encontrará  a última coluna que contém os dados na primeira linha da planilha “Planilha1”:

Sub FindingLastColumn()
    Dim ws As Worksheet
    Dim LastCol As Long
    Set ws = ThisWorkbook.Worksheets(“Sheet1”)

    ' Finds the last column that has data in the first row
    LastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

    ' Displays results in Immediate Window
    Debug.Print “Last Column with Data: “ & LastCol
End Sub

Vantagens do .End(xlToLeft) Method

  • É ótimo encontrar a última coluna que contém os dados na tabela.
  • É simples de usar sem exigir muito código.
  • Ele pode ajudar a encontrar o cabeçalho ou a seção de um relatório automatizado.

Desvantagens do .End(xlToLeft) Method

  • Se houver colunas vazias entre os dados, esse método será interrompido antes de chegar à última coluna real.
  • Como em .End(xlUp), esse método não leva em consideração as colunas mescladas.

4. Usando Find para detectar com precisão as células preenchidas por último

O método Find em Excel VBA é uma das maneiras mais eficazes e apropriadas de localizar a última linha ou coluna que contém dados em uma planilha.

Ao contrário do .End(xlUp), que funciona apenas em uma coluna, o método Find pode pesquisar a última célula em toda a área da planilha, tanto linhas quanto colunas.

Esse método é especialmente benéfico quando você está trabalhando com conjuntos de dados complexos, tem células ocultas (hidden rows/columns) ou células que contêm fórmulas. Também é adequado para conjuntos de dados irregulares.

Exemplo de código VBA para localizar a última linha que contém dados

O código a seguir localizará a última linha que tem dados em uma determinada planilha usando o método Find :

Sub FindingLastRow()
    Dim ws As Worksheet
    Dim LastRow As Long
    Set ws = ThisWorkbook.Worksheets(“Sheet1”)

    ' Finds the last row that has data
    On Error Resume Next
    LastRow = ws.Cells.Find(What:=“*”, _
                            After:=ws.Range(“A1”), _
                            Lookat:=xlPart, _
                            LookIn:=xlFormulas, _
                            ' SearchOrder:=xlByColumns, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlPrevious, _
                            MatchCase:=False).Row
    On Error GoTo 0

    ' Displays results in Immediate Window
    Debug.Print “Last Row with Data: “ & LastRow
End Sub

Use SearchOrder:=xlByColumns para realizar uma pesquisa por coluna.

Últimos artigos