找到列中的最後一個非空單元格

在此示例中,我們將檢視用於返回資料集的列中的最後一個非空行的方法。

無論資料集中的空區域如何,此方法都將起作用。

但是,如果**涉及***合併的單元格,****則應該謹慎使用 ***** ,因為 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