- ベストアンサー
VBAのオートフィルタについて
- エクセルVBAのオートフィルタの機能を使い、指定の条件に該当する行をコピーする方法について説明します。
- マクロを実行すると、指定の条件に該当する行がコピーされますが、なぜB1のセルまでコピーされるのか疑問です。
- さらに、オートフィルタのタイトル行もコピーする方法についても教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> ご指示のコードは以下のような感じになりますでしょうか? > .CurrentRegion.SpecialCells(xlVisible).Select Worksheets("検索結果").Range("A1") .CurrentRegion.SpecialCells(xlVisible).Select だけでいいです。 CurrentRegionについても検索してCurrentRegionがどの範囲を指定してるのかも把握してください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
>1"シートの13行目が”ABC”の行を、"検索結果"というシートにコピーしたいです。 これは書きそこないか? エクセルでは第13行目のデータを狙って、フィルタをかける例は、あまり話題にならない。 13列=M列にABCがある行を抜き出すなら、WEBなどのAやB列の説明例の、M列版で不思議はないが。 この点をあいまいにしては、回答ができないと思う。再質問だな。
補足
ご回答下さり有難うございます。 また、ご返信遅くなり申し訳ございません。 大変失礼いたしました。13行ではなく、13列でございます。 よろしくお願いいたします。
- kkkkkm
- ベストアンサー率66% (1719/2589)
Field:=13,は13行目ではなくてフィルター範囲の左から13列目になると思います。 オートフィルタ(AutoFilterメソッド)でのデータ抽出 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_autofilter.html どのデータ範囲がコピーされるのか .CurrentRegion.SpecialCells(xlVisible).Select にして 最後の .AutoFilter をコメントにしてみると確認できると思います。
補足
ご回答下さり有難うございます。 また返答が遅くなり申し訳ございません。 ご指示のコードは以下のような感じになりますでしょうか? .CurrentRegion.SpecialCells(xlVisible).Select Worksheets("検索結果").Range("A1") '.AutoFilter 私のやり方が悪いと思うのですが、「引数が一致していません。または不正はプロパティを指定しています」とエラーが出てしまいました。 お手間をお掛けいたしますが、どうぞ宜しくお願いいたします。
お礼
有難うございます!! 考え方の勉強になりました! 関連して、新しい疑問がでてきたため、また新しい質問として投稿させて頂きます。