2008-09-22 3 views
16

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

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

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

+1

Не могли бы вы представить пример ввода и пример того, что вы хотите? – 2008-09-22 12:16:44

ответ

12
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

Я уверен, что вы, вероятно, хотел ответить, что @GSerg дал. Существует также функция рабочего листа, называемая rows, которая даст вам количество строк.

Итак, если у вас есть именованный диапазон данных, называемый Data, который имеет 7 строк, то =ROWS(Data) покажет 7 в этой ячейке.

+0

привет wcm спасибо - ответ Гэндга тот, который я хотел. Проблема, которую я имел с формулой ROWS, заключалась в том, что я не знал адрес диапазона, и я не мог использовать динамический диапазон смещения, используя counta, потому что в столбце было больше данных – SpyJournal 2008-09-22 12:42:53

1

Этот одиночный последний линия работал совершенно @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 
5

Вы также можете использовать:

Range(RangeName).end(xlDown).row 

найти последнюю строку с данными в нем, начиная с Вашим именем диапазона.

8

Почему бы не использовать формулу Excel для определения строк? Например, если вы ищете, сколько ячеек содержат данные в колонке А использовать это:

= COUNTIFS (A: A, «<>»)

Вы можете заменить <> с любым значением, чтобы получить как многие строки имеют это значение.

= COUNTIFS (А: А, "2008")

Это может быть использовано для обнаружения заполненных ячеек в строке тоже.

Смежные вопросы