當(dāng)我們Excel數(shù)據(jù)表的數(shù)據(jù)行數(shù)不固定的情況,我們?nèi)绾沃涝贓xcel中的數(shù)據(jù)到底有多少行?我想這個(gè)問(wèn)題肯定有很多人特別想知道,因?yàn)樵谖覀僔BA案例中,經(jīng)常會(huì)用得到最后行號(hào),下面就和大家分享幾種方法: 1.使用For循環(huán)方法 '定義num儲(chǔ)存行號(hào)的變量,i循環(huán)變量 Dim num, i '將Excel最大行號(hào)賦值給變量 num = Rows.Count '開始循環(huán)并判斷,找出最后有值的單元格 For i = 1 To num If Range("a" & num) <> "" Then Exit For End If num = num - 1 Next '輸出num,也就是得到的行號(hào) MsgBox num 執(zhí)行后可以正確得到最后數(shù)據(jù)行行號(hào) 不足點(diǎn): 數(shù)據(jù)行很少的情況下,循環(huán)起來(lái)好慢。 2.使用.UsedRange方法 '定義一個(gè)儲(chǔ)存行號(hào)的變量 Dim num '使用UsedRange獲取的行號(hào)賦值給num num = ActiveSheet.UsedRange.Rows.Count '輸出num,也就是得到的行號(hào) MsgBox num 代碼執(zhí)行后可以獲取到最后一行行號(hào) 不足點(diǎn): 單元格存在有格式的單元格,就會(huì)算上帶有格式的單元格,得到的行號(hào)就會(huì)有問(wèn)題 3.使用Range().End(xlDown)方法 '定義一個(gè)儲(chǔ)存行號(hào)的變量 Dim num '使用Range("").End(xlDown)獲取的行號(hào)賦值給num num = ActiveSheet.Range("a1").End(xlDown).Row '輸出num,也就是得到的行號(hào) MsgBox num 代碼執(zhí)行后可以獲取最后一行行號(hào) 不足點(diǎn): 如何列數(shù)據(jù)中有空白行,就得出錯(cuò)誤的行號(hào) 如果最后的數(shù)據(jù)行被隱藏,也會(huì)得到錯(cuò)誤行號(hào) 4.使用Range().End(xlUp)方法 '定義一個(gè)儲(chǔ)存行號(hào)的變量 Dim num '使用Range("").End(xlUp)獲取的行號(hào)賦值給num num = ActiveSheet.Range("a" & Rows.Count).End(xlUp).Row '輸出num,也就是得到的行號(hào) MsgBox num 代碼執(zhí)行后可以獲得最后一行數(shù)據(jù)行號(hào) 不足點(diǎn): 如果整個(gè)表格的最后行有數(shù)據(jù),就會(huì)得到錯(cuò)誤行號(hào) 如果最后的數(shù)據(jù)行被隱藏,也會(huì)得到錯(cuò)誤行號(hào) 5.使用Cells.SpecialCells方法 '定義一個(gè)儲(chǔ)存行號(hào)的變量 Dim num '使用Cells.SpecialCells獲取的行號(hào)賦值給num num = Cells.SpecialCells(xlCellTypeLastCell).Row '輸出num,也就是得到的行號(hào) MsgBox num 執(zhí)行后可以正確獲取最后數(shù)據(jù)行號(hào) 不足點(diǎn): 如果存在有格式的空單元格,就會(huì)獲取錯(cuò)誤行號(hào) 6.使用Cells.Find方法 '定義一個(gè)儲(chǔ)存行號(hào)的變量 Dim num '使用Cells.Find獲取的行號(hào)賦值給num num = Cells.Find(what:="*", after:=Range("a1"), searchorder:=xlRows, searchdirection:=xlPrevious).Row '輸出num,也就是得到的行號(hào) MsgBox num 執(zhí)行后可以正確得到數(shù)據(jù)行最后一行行號(hào) 不足點(diǎn): 如果數(shù)據(jù)最后一行被篩選了,會(huì)得到錯(cuò)誤的行號(hào) 好了,關(guān)于如何獲取Excel數(shù)據(jù)表單元格最后一行的方法就介紹這些! |
|
來(lái)自: 每天學(xué)學(xué)Excel > 《文章》