これは、Excel のバージョン (2003、2007、2010) に関係なく機能します。前者は 1 シートに 65536 行あり、後者の 2 つは 100 万行程度です。Sheet1.Rows.Count
バージョンに応じてこの番号を返します。
numofrows = Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp).Row
または同等だが短い
numofrows = Sheet1.Cells(Sheet1.Rows.Count,1).End(xlUp)
これは、列 A の一番下から空でない最初のセルを検索し、その行番号を取得します。
これは、他の列のさらに下にあるデータがある場合にも機能します。したがって、たとえば、例のデータを取得し、FY4763 セルに何かを書き込んだ場合でも、上記は正しく 9 を返します (4763 ではありません。このUsedRange
プロパティを含むメソッドは間違って返します)。
本当に、セル参照が必要な場合は、次を使用する必要があることに注意してください。最初に行番号を取得してからセル参照を作成する必要はありません。
Set rngLastCell = Sheet1.Range("A1").Offset(Sheet1.Rows.Count - 1, 0).End(xlUp)
このメソッドは、特定のエッジ ケースで失敗することに注意してください。
- 最後の行にはデータが含まれています
- 最後の行が非表示または除外されています
したがって、これらの目的で行 1,048,576 を使用する予定がある場合は注意してください。