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.
Outros artigos interessantes
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.