找到列中的最后一个非空单元格

在此示例中,我们将查看用于返回数据集的列中的最后一个非空行的方法。

无论数据集中的空区域如何,此方法都将起作用。

但是,如果**涉及***合并的单元格,****则应该谨慎使用 ***** ,因为 End 方法将针对合并区域“停​​止”,返回合并区域的第一个单元格。

此外,不会考虑隐藏行中的非空单元格。

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

为解决上述限制,行:
LastRow = wS.Cells(wS.Rows.Count, "A").End(xlUp).Row

可以替换为:

  1. 最后一行使用了 Sheet1
    LastRow = wS.UsedRange.Row - 1 + wS.UsedRange.Rows.Count

  2. 对于 Sheet1 中列 A 的最后一个非空单元格:

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