3 回答

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊
我喜歡這樣:
ActiveSheet.UsedRange.Rows.Count
列數(shù)也可以這樣做。對(duì)我來說,永遠(yuǎn)工作。但是,如果您在另一列中有數(shù)據(jù),那么上面的代碼也會(huì)考慮它們,因?yàn)樵摯a正在查找工作表中的所有單元格范圍。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
最安全的選擇是
Lastrow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Lastcol = Cells.Find("*", [A1], , , xlByColumns, xlPrevious).Column
不要使用UsedRange或SpecialCells(xlLastCell)或End(xlUp)。如果您以前刪除了一些行,所有這些方法可能會(huì)導(dǎo)致錯(cuò)誤的結(jié)果。Excel仍會(huì)計(jì)算這些不可見的單元格。
如果您刪除單元格,保存工作簿,關(guān)閉然后重新打開,這些方法將再次起作用。

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
這將獨(dú)立于Excel版本(2003、2007、2010)運(yùn)行。前一張紙有65536行,而后兩張紙則有大約一百萬行。Sheet1.Rows.Count根據(jù)版本返回此數(shù)字。
numofrows = Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp).Row
或同等但較短
numofrows = Sheet1.Cells(Sheet1.Rows.Count,1).End(xlUp)
這將從列A的底部向上搜索第一個(gè)非空單元格,并獲取其行號(hào)。
如果您在其他列中有更深的數(shù)據(jù),這也可以使用。因此,例如,如果您獲取示例數(shù)據(jù)并在單元格FY4763中寫了一些內(nèi)容,則上面的內(nèi)容仍將正確返回9(而不是4763,涉及該UsedRange屬性的任何方法均會(huì)錯(cuò)誤地返回)。
請(qǐng)注意,實(shí)際上,如果要使用單元格引用,則應(yīng)使用以下內(nèi)容。您不必先獲取行號(hào),然后構(gòu)建單元格引用。
Set rngLastCell = Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp)
請(qǐng)注意,此方法在某些情況下會(huì)失?。?/p>
最后一行包含數(shù)據(jù)
最后一行被隱藏或過濾掉
因此,請(qǐng)注意,如果您打算將1,048,576行用于這些操作!
- 3 回答
- 0 關(guān)注
- 1768 瀏覽
添加回答
舉報(bào)