Определить количество строк в диапазоне
Я знаю название диапазона начала списка - 1
шириной столбца и x
строк в глубину.
Как рассчитать x
?
В столбце больше данных, чем только этот список. Однако этот список является смежным - в любой из ячеек выше или ниже ни одной из них нет ни одной из сторон.
Ответы
Ответ 1
Function ListRowCount(ByVal FirstCellName as String) as Long
With thisworkbook.Names(FirstCellName).RefersToRange
If isempty(.Offset(1,0).value) Then
ListRowCount = 1
Else
ListRowCount = .End(xlDown).row - .row + 1
End If
End With
End Function
Но если вы чертовски уверены, что ничего нет в списке, то просто thisworkbook.Names(FirstCellName).RefersToRange.CurrentRegion.rows.count
Ответ 2
Sheet1.Range("myrange").Rows.Count
Ответ 3
Почему бы не использовать формулу Excel для определения строк? Например, если вы ищете, сколько ячеек содержат данные в столбце A, используйте это:
= COUNTIFS (А: А, "< > " )
Вы можете заменить < > на любое значение, чтобы узнать, сколько строк имеет в нем значение.
= COUNTIFS (А: А, "2008" )
Это можно использовать для поиска заполненных ячеек в строке.
Ответ 4
Вы также можете использовать:
Range( RangeName ).end(xlDown).row
чтобы найти последнюю строку с данными в ней, начиная с вашего именованного диапазона.
Ответ 5
Я уверен, что вы, вероятно, хотели получить ответ, который дал @GSerg. Существует также функция рабочего листа с именем rows
, которая даст вам количество строк.
Итак, если у вас есть именованный диапазон данных с именем Data
, который имеет 7 строк, то =ROWS(Data)
отобразит 7 в этой ячейке.
Ответ 6
Эта единственная последняя строка отлично работала @GSerg.
Другая функция - это то, над чем я работал, но мне не нравится прибегать к UDF, если это абсолютно необходимо.
Я пытался сочетать excel и vba и получил это, чтобы работать, но его неуклюжий по сравнению с вашим ответом.
strArea = Sheets("Oper St Report CC").Range("cc_rev").CurrentRegion.Address
cc_rev_rows = "=ROWS(" & strArea & ")"
Range("cc_rev_count").Formula = cc_rev_rows