excel-vba Trova l'ultima cella non vuota in una colonna


Esempio

In questo esempio, esamineremo un metodo per restituire l'ultima riga non vuota in una colonna per un set di dati.

Questo metodo funziona indipendentemente dalle regioni vuote all'interno del set di dati.

Tuttavia, è necessario prestare attenzione se sono coinvolte le celle unite , poiché il metodo End verrà "arrestato" contro una regione unita, restituendo la prima cella della regione unita.

Inoltre, le celle non vuote nelle righe nascoste non saranno prese in considerazione.

Sub FindingLastRow()
    Dim wS As Worksheet, LastRow As Long
    Set wS = ThisWorkbook.Worksheets("Sheet1")
    
    'Here we look in Column A
    LastRow = wS.Cells(wS.Rows.Count, "A").End(xlUp).Row
    Debug.Print LastRow
End Sub

Per affrontare le limitazioni sopra indicate, la linea:
LastRow = wS.Cells(wS.Rows.Count, "A").End(xlUp).Row

può essere sostituito con:

  1. per l'ultima riga utilizzata di "Sheet1" :
    LastRow = wS.UsedRange.Row - 1 + wS.UsedRange.Rows.Count .

  2. per l'ultima cella non vuota della colonna "A" in "Sheet1" :

     Dim i As Long
     For i = LastRow To 1 Step -1
         If Not (IsEmpty(Cells(i, 1))) Then Exit For
     Next i
     LastRow = i