2021-05-12 14:32:11
Excel VBA教程:獲取Excel有資料單元格最後一行的幾種方法
當我們Excel資料表的資料行數不固定的情況,我們如何知道在Excel中的資料到底有多少行?我想這個問題肯定有很多人特別想知道,因為在我們VBA案例中,經常會用得到最後行號,下面就和大家分享幾種方法:
1.使用For迴圈方法
'定義num儲存行號的變數,i迴圈變數
Dim num, i
'將Excel最大行號賦值給變數
num = Rows.Count
'開始迴圈並判斷,找出最後有值的單元格
For i = 1 To num
If Range("a" & num) <> "" Then
Exit For
End If
num = num - 1
Next
'輸出num,也就是得到的行號
MsgBox num
執行後可以正確得到最後資料行行號
不足點:
資料行很少的情況下,迴圈起來好慢。
2.使用.UsedRange方法
'定義一個儲存行號的變數
Dim num
'使用UsedRange獲取的行號賦值給num
num = ActiveSheet.UsedRange.Rows.Count
'輸出num,也就是得到的行號
MsgBox num
程式碼執行後可以獲取到最後一行行號
不足點:
單元格存在有格式的單元格,就會算上帶有格式的單元格,得到的行號就會有問題
3.使用Range().End(xlDown)方法
'定義一個儲存行號的變數
Dim num
'使用Range("").End(xlDown)獲取的行號賦值給num
num = ActiveSheet.Range("a1").End(xlDown).Row
'輸出num,也就是得到的行號
MsgBox num
程式碼執行後可以獲取最後一行行號
不足點:
如何列資料中有空白行,就得出錯誤的行號
如果最後的資料行被隱藏,也會得到錯誤行號
4.使用Range().End(xlUp)方法
'定義一個儲存行號的變數
Dim num
'使用Range("").End(xlUp)獲取的行號賦值給num
num = ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row
'輸出num,也就是得到的行號
MsgBox num
程式碼執行後可以獲得最後一行資料行號
不足點:
如果整個表格的最後行有資料,就會得到錯誤行號
如果最後的資料行被隱藏,也會得到錯誤行號
5.使用Cells.SpecialCells方法
'定義一個儲存行號的變數
Dim num
'使用Cells.SpecialCells獲取的行號賦值給num
num = Cells.SpecialCells(xlCellTypeLastCell).Row
'輸出num,也就是得到的行號
MsgBox num
執行後可以正確獲取最後資料行號
不足點:
如果存在有格式的空單元格,就會獲取錯誤行號
6.使用Cells.Find方法
'定義一個儲存行號的變數
Dim num
'使用Cells.Find獲取的行號賦值給num
num = Cells.Find(what:="*", after:=Range("a1"), searchorder:=xlRows, searchdirection:=xlPrevious).Row
'輸出num,也就是得到的行號
MsgBox num
執行後可以正確得到資料行最後一行行號
不足點:
如果資料最後一行被篩選了,會得到錯誤的行號
好了,關於如何獲取Excel資料表單元格最後一行的方法就介紹這些!
~如果您喜歡的話,歡迎點贊+關注+留言哦,感謝您的支援!
相關文章