Определите количество строк в [закрытом] диапазоне

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

17
задан ashleedawg 27 June 2018 в 14:42
поделиться

5 ответов

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

11
ответ дан 30 November 2019 в 10:00
поделиться

Можно также использовать:

Range( RangeName ).end(xlDown).row

для нахождения последней строки с данными в нем запускающийся в именованном диапазоне.

5
ответ дан 30 November 2019 в 10:00
поделиться

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

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

3
ответ дан 30 November 2019 в 10:00
поделиться

Та единственная последняя строка работала отлично @GSerg.

другая функция была тем, что я продолжал работать, но мне не нравится иметь необходимость обратиться к UDF's, если не абсолютно необходимо.

я пробовал комбинацию 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
1
ответ дан 30 November 2019 в 10:00
поделиться
Sheet1.Range("myrange").Rows.Count
56
ответ дан 30 November 2019 в 10:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: