こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フィルタ検索後、最上位行に移動する方法

シート(請求書データベース)内のデータにフィルターをかけてデータ抽出後、最上位行に移動するVBAをご教授願いますでしょうか?
ちなみにフィルター検索後も下記VBAで最下位行に移動はできます。

Sub 最下位行移動()
Selection.End(xlDown).Select
End Sub

下記VBAでは、フィルター検索後でも単純にA1行が選択されるだけで、フィルター抽出後の最上位行に移動できません。A1行は固定窓に設定しています。

Range("A2").Selectを入れると、フィルター抽出を解除した後であれば問題ないのですが、フィルター抽出後はA1行(先頭行)の下は何行目が来るかわかりません。

Sub 最上位行移動()
Selection.End(xlup).Select
End Sub

投稿日時 - 2018-02-12 12:45:55

QNo.9428266

困ってます

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

Range("A1").Select
Application.SendKeys "{Down}"

↑のコードでいかがでしょうか。

投稿日時 - 2018-02-12 14:14:37

お礼

ご回答いただき、ありがとうございます。フィルターをかけた後、見事に最上位行に移動できました。 この短いコードで出来るとは、感謝です。

投稿日時 - 2018-02-12 23:03:32

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

SendKeyを使わない解もポストします。

Sub MyTest()
 Dim wkCnt As Integer
 With ThisWorkbook.Sheets(1)
  wkCnt = 2
  Do
   If .Rows(wkCnt).Hidden = False Then
    .Cells(wkCnt, 1).Select
    Exit Do
   End If
   wkCnt = wkCnt + 1
  Loop
 End With
End Sub

投稿日時 - 2018-02-12 21:25:11

お礼

ご回答いただき、ありがとうございます。内容を理解したうえで、検証してみます。

投稿日時 - 2018-02-12 23:02:13

ANo.2

例データ Sheet1のA1:B11

コード順序 <ーー見出しです
an1
sn2
dn3
an4
an5
sn6
xn7
cn8
vn9
an10
ーー
標準モジュールに
ub test02()
With Worksheets("Sheet1")
.Range("A1").AutoFilter _
Field:=1, Criteria1:="=a"
End With
ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Range("2:2").Select
End Sub
を実行すると、フィルタ後の最上行をSelectしたが。(最上行にある見出し行は除いて)。
余りよく出る質問ではないので、十分な自信なし。

投稿日時 - 2018-02-12 17:52:27

お礼

ご回答いただき、ありがとうおございます。検証してみます。

投稿日時 - 2018-02-12 23:00:54