Подтвердить что ты не робот

Определить количество строк в диапазоне

Я знаю название диапазона начала списка - 1 шириной столбца и x строк в глубину.

Как рассчитать x?

В столбце больше данных, чем только этот список. Однако этот список является смежным - в любой из ячеек выше или ниже ни одной из них нет ни одной из сторон.

4b9b3361

Ответ 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