2008-09-22 5 views
16

목록의 시작 범위 이름을 알고 있습니다 (1 열 너비는 x 행).범위의 행 수 확인

x는 어떻게 계산합니까?

이 목록보다 많은 데이터가 열에 있습니다. 그러나이 목록은 연속적입니다. 셀 위나 아래 또는 양쪽에 아무 것도 없습니다.

+1

예제 입력과 원하는 예제를 제공 할 수 있습니까? –

답변

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 감사합니다 - GSerg의 대답은 제가 원했던 것입니다. ROWS 공식에 문제가 있습니다. 범위 주소를 알지 못했고 열에 더 많은 데이터가 있었기 때문에 counta를 사용하여 동적 오프셋 범위를 사용할 수 없었습니다. – SpyJournal

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 

이 명명 된 범위에서 시작하여 그 안에 데이터가있는 마지막 행을 찾을 수 있습니다.

47
Sheet1.Range("myrange").Rows.Count 
8

왜 수식을 사용하여 행을 결정하지 않습니까? 예를 들어, 경우 컬럼에 사용하는 데이터를 포함 얼마나 많은 세포를 찾고 있습니다이 :

= COUNTIFS (A : A는 "<>")

당신은 어떻게 얻을 수있는 값> <을 대체 할 수 많은 행에 그 값이 있습니다.

= COUNTIFS (A : (A)는, "2008")

이 너무 연속으로 채워진 세포를 찾는 데 사용할 수 있습니다.