エクセル VBAのオートフィルター実行時にデータが抽出されない件について。
エクセル VBAのオートフィルター実行時にデータが抽出されない件について。 6桁の製品番号をAシートのB2セルに入力 → オートフィルタでBシートの表が該当製品のみに絞り込まれる、を作成していますが、うまくいきません。 製品番号は英数混在で6桁。(例:A08C01,000821,068B12,などです。) 作成した下記マクロでは、製品番号の頭が0で始まる製品番号が抽出されません。 検索で、表示形式通りでないとフィルタ機能がうまく働かないということまでは理解しましたが、調べても修正方法がわからず困っております。 Sub test() ' ' test Macro Dim Sht1 As Worksheet Dim Sht2 As Worksheet Dim Buf As Variant Set Sht1 = Sheets("B") Set Sht2 = Sheets("A") Buf = Sht2.Cells(2, 2).Value Sheets("B").Select Range("A1").Select Selection.AutoFilter Worksheets("一覧").Range("$A$1:$M$13").AutoFilter Field:=9, Criteria1:=Buf End Sub
Visual Basic・121閲覧
ベストアンサー
提示されているコードではエラーが出て動きませんよ。 AutoFilterを設定しているシート名が違います。 折角変数に入れているなら使いましょう。 あと、コードはもっと整理しましょう。 Sub test() Dim Sht1 As Worksheet Dim Sht2 As Worksheet Dim Buf As Variant Set Sht1 = Sheets("B") Set Sht2 = Sheets("A") Buf = Sht2.Cells(2, 2).Value Sht1.Range("A1").AutoFilter 9, Buf End Sub
1人がナイス!しています
回答いただき、ありがとうございます。 ご指摘いただいた間違いを訂正し、また教えていただいたコードで大分すっきりさせることができました。当方知識不足で現時点ではマクロ記録→VBA修正や継ぎはぎコードで何とか対処している状態です。今後はもっと勉強していきたいと思います。この度はありがとうございました。
質問者からのお礼コメント
お二人に回答いただき、上記問題は無事に解決できました。 最初に回答いただいた方をベストアンサーにさせていただきますが、お二人ともお時間を割いてアドバイスいただき、感謝しております。 ありがとうございました。
お礼日時:1/25 13:11