Определить количество строк в диапазоне [закрыто]
Вопрос
Я знаю имя диапазона начала списка - 1
столбец шириной и x
ряды глубокие.
Как мне рассчитать x
?
В столбце больше данных, чем только этот список.Однако этот список является непрерывным — ни в одной из ячеек выше, ниже или по обе стороны от него ничего нет.
Решение
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
Другие советы
Sheet1.Range("myrange").Rows.Count
Почему бы не использовать формулу Excel для определения строк?Например, если вы ищете, сколько ячеек содержит данные в столбце A, используйте это:
=СЧЁТЕСЛИ(А:А,"<>")
Вы можете заменить <> любым значением, чтобы узнать, сколько строк содержит это значение.
=СЧЁТЕСЛИ(А:А,"2008")
Это также можно использовать для поиска заполненных ячеек подряд.
Вы также можете использовать:
Range( RangeName ).end(xlDown).row
чтобы найти последнюю строку с данными, начиная с вашего именованного диапазона.
Я уверен, что вам, вероятно, нужен ответ, который дал @GSerg.Существует также функция рабочего листа, называемая rows
это даст вам количество строк.
Итак, если у вас есть именованный диапазон данных, называемый Data
там 7 строк, тогда =ROWS(Data)
покажет 7 в этой ячейке.
Эта последняя строка сработала отлично @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