使用命名範圍查詢最後一行

如果工作表中有命名範圍,並且你想動態獲取該動態命名範圍的最後一行。還包括命名範圍不從第一行開始的情況。

Sub FindingLastRow()
    
Dim sht As Worksheet
Dim LastRow As Long
Dim FirstRow As Long

Set sht = ThisWorkbook.Worksheets("form")

'Using Named Range "MyNameRange"
FirstRow = sht.Range("MyNameRange").Row

' in case "MyNameRange" doesn't start at Row 1
LastRow = sht.Range("MyNameRange").Rows.count + FirstRow - 1

End Sub

更新:
@Jeeped 指出了一個潛在的漏洞,它是一個帶有非連續行的命名範圍,因為它會產生意想不到的結果。為了解決該問題,程式碼修改如下。
假設:targes sheet = form,名為 range = MyNameRange

Sub FindingLastRow()
    Dim rw As Range, rwMax As Long
    For Each rw In Sheets("form").Range("MyNameRange").Rows
        If rw.Row > rwMax Then rwMax = rw.Row
    Next
    MsgBox "Last row of 'MyNameRange' under Sheets 'form': " & rwMax
End Sub