質問

リストの先頭の範囲名はわかっています - 1 列幅と x 深い列。

計算方法 x?

この列には、このリスト以外にも多くのデータが含まれています。ただし、このリストは連続しています。上下または両側のセルには何もありません。

役に立ちましたか?

解決

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

他のヒント

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

Excel の数式を使用して行を決定してみてはいかがでしょうか?たとえば、列 A にデータが含まれるセルの数を探している場合は、次を使用します。

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

<> を任意の値に置き換えると、その値が含まれる行の数を取得できます。

=COUNTIFS(A:A,"2008")

これは、行内で塗りつぶされたセルを見つけるためにも使用できます。

次のものも使用できます。

Range( RangeName ).end(xlDown).row

名前付き範囲から始まるデータを含む最後の行を検索します。

おそらく @GSerg が与えた答えが欲しかったと思います。というワークシート関数もあります。 rows それにより行数が得られます。

したがって、という名前のデータ範囲がある場合、 Data 7行ある場合、 =ROWS(Data) そのセルには 7 が表示されます。

@GSerg の最後の 1 行は完璧に機能しました。

もう 1 つの機能は私が取り組んでいたものですが、絶対に必要な場合を除いて 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
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top