使用命名範圍查詢最後一行
如果工作表中有命名範圍,並且你想動態獲取該動態命名範圍的最後一行。還包括命名範圍不從第一行開始的情況。
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