Это будет работать независимо от версии Excel (2003, 2007, 2010). В первом листе 65536 строк, а в двух последних - около миллиона строк. 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!
person
Jean-François Corbett
schedule
10.06.2011