2008-09-22 113 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 謝謝 - GSerg的答案是我想要的。 我用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 

找到最後一行開始在你的命名範圍中包含數據。

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

爲什麼不使用Excel公式來確定行?舉例來說,如果你正在尋找有多少細胞在列包含數據的用途是:

= COUNTIFS(A:A,「<>」)

你可以用任何值代替<>獲得如何許多行都有它的價值。

= COUNTIFS(A:A, 「2008」)

這可以被用於在一排發現填充細胞太。