VBAで AutoFilter による絞り込みを行いたいのですが、絞り込みが上手くできませんでした。
sheet6にidの一覧があり、sheet7にidの下4桁を入力することで、sheet6のid一覧を AutoFilter で絞り込みしたいのですが、全て隠れてしまいました。
sheet6 および sheet7 の画像を載せさせて頂きましたので、参考にして頂けますと幸いです。
sheet7の入力に関しては下4桁のみを入力するだけにしたく、その下4桁というのを分かりやすくするために、表示をあえて 文字列 にしております。(0003 と入力して、3 ではなく、0003 と表示させたいため。)
そのため、はじめは文字列という表示が絞り込みが上手くいかない原因かと思ったのですが、sheet6, sheet7の表示をどちらとも数値にしても一覧のidすべてが隠されてしまいました。
以下に私のコードを記載いたします。
VBA
1Sub filterId() 2 3Dim scriningId() As Long, endRow As Long, id As Variant, m As Long 4ReDim scriningId(0) 5'下4桁のidが打ち込まれた部分を選択。 6endRow = Sheet7.Cells(rows.Count, 1).End(xlup).Row 7Sheet7.Range(Cells(2, 1), Cells(endRow, 1)).Select 8'選択部分をfor eachで配列に格納。 9For Each id In Selection 10 m = UBound(scriningId) + 1 11 ReDim Preserve scriningId(m) 12 scriningId(m) = id + 10000000 13Next id 14 15Sheet6.Cells(1, 1).AutoFilter 1, scriningId, xlFilterValues 16Sheet6.Select 17 18End Sub
以上となります。
問題点を教えて頂けないでしょうか。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/23 11:12