• ベストアンサー

エクセルVBAでオートフィルター最上行を取得するには

データのリストからオートフィルターでE列のある特定のデータを表示し、それが複数の場合、最下行は Cells(ActiveSheet.Rows.Count, "E").End(xlUp).Row で取得できますが、見出しのすぐ下に来る一番目のデータがある最上行はどうやって取得したらいいのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

オートフィルタで非表示になっている行ではRowsのHiddenプロパティがTrueになっていることを利用して、 Dim 行 As Long 行 = 2 While ActiveSheet.Rows(行).Hidden   行 = 行 + 1 Wend とすると、変数「行」に先頭の行番号が入ります。

merlionXX
質問者

お礼

ありがとうございました。 出来ました。 でも、よく考えたらオートフィルターで検索してE列の一番上に来るセルの行番号ならMatchでも求められましたね。教えていただいた方法もとても勉強になりました。ありがとういございます。 Sub FirstRow() 検索値 = "XX" MsgBox Application.Match(検索値, Columns("E"), 0) End Sub

すると、全ての回答が全文表示されます。

関連するQ&A