質問
リストの先頭の範囲名はわかっています - 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
所属していません StackOverflow