2008-09-22 89 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”)

这可以被用于在一排发现填充细胞太。