フィルターで抽出後データがないとき

いつも変数宣言などしないで使っていたのですが、勉強して反省しました。
さて、フィルターをかけたらデータがなかった時。

Option Explicit
Sub Macro1()
 '表の最下行
Dim e As Long: e = Range("A1").End(xlDown).Row
 'フィルターがかかってなかったらかける
If Not ActiveSheet.FilterMode Then
ActiveSheet.Range("$A$1").AutoFilter
End If
 'フィルター
ActiveSheet.Range("$A$1").AutoFilter Field:=1, Criteria1:="8", _
Operator:=xlAnd
 '抽出後の最下行(データが無ければシートの一番下)
Dim ne As Long: ne = Range("A1").End(xlDown).Row
If ne > e Then MsgBox "ないよ" Else MsgBox "最下行" & ne
 '全データ表示フィルターを取る
ActiveSheet.ShowAllData
ActiveSheet.Range("$A$1").AutoFilter
End Sub

こんな感じかなぁって書いてから調べたら、specialcells(xlCellTypeVisible).countとか使う方がいいのかなぁ?
抽出後のデータの一番下を調べて、最初の表の最下行よりも大きくなるようならおかしいって考え方なんすけどなんかヤバいのかなぁ?
他のサイト見てると下から上みる感じのCells(Rows.Count, 1).End(xlUp)使ってたり・・・これがお勧めってのがあれば教えてください(;´Д`)

どのくらい面白かった?

星を押して送信してね

平均 0 / 5. Vote count: 0

是非フォローしてください

最新の情報をお伝えします

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です