首頁 > 軟體

Excel VBA教程:獲取Excel有資料單元格最後一行的幾種方法

2021-03-14 01:30:24

當我們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資料表單元格最後一行的方法就介紹這些!

~如果您喜歡的話,歡迎點贊+關注+留言哦,感謝您的支援!


IT145.com E-mail:sddin#qq.com