そもそも、「表の最終行番号」が分かったとして、
その値をどのように使うつもりですか?
例えば、
VBA
1Sub test()
2 MsgBox Range("A1").CurrentRegion.Address
3End Sub
このように、
Range("A1").CurrentRegion(A1セルを含むアクティブな表の意)とすれば、
表示・非表示の状態にとらわれず、表の範囲を取得できますので、
取り立てて最終行番号だけを、取得する必要性があまりありません。
どうしても行番号をという事であれば、
VBA
1Sub test2()
2 Dim Rng As Range
3
4 Set Rng = Range("A1").CurrentRegion
5 MsgBox Rng.Rows(Rng.Rows.Count).row
6End Sub
このようにして、表のセル範囲という情報の中から取り出します。
また、
「すでにオートフィルターが掛かっている。」
ということが前提条件で、「オートフィルターが掛かっているセル範囲」を
知りたいならば、
VBA
1Sub test3()
2 MsgBox ActiveSheet.AutoFilter.Range.Address
3End Sub
このようにして、知ることも可能です。
(オートフィルターが掛かっていなければエラーになるので、
合わせて、エラーの回避処理を書いておいた方がよいでしょう)
あ、質問を読み直したら、「行番号」とは一つも書いてないですね。
失礼しました。
まず、セル範囲を取得します。
で、そのセル範囲の行数を数えます。(例 Range("B3:D5").Rows.Count)
その行数は、表の上から数えたら、最終行は、「数えた行数」番目になります。
ので、Rowsプロパティーの引数に数えた数を指定してやれば、「最終行」を指し示すことになります。
Range(”B3:D5").Rows(Range("B3:D5").Rows.Count)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/06 09:52
2019/03/06 11:07