質問: 【vba】特定の文字が入っている行の一部を抽出して別シートコピーするには vba初心者です。 色々と検索したのですが、似たような内容が見つけられず教えていただきたいです。 条件を満たす行の一部をとなりのシートにコピーしたいです。 【シート1】※データシート a b c d e f g 会員番号/会員ランク/会員登録日 / 氏名 /都道府県/住所1/謎の文言列 1 プラチナ 2010/1/10 あ 東京都 東 あい78あいあ 【シート2】※抽出結果の貼付けシート a b c d 会員番号/会員ランク/会員登録日 /謎の文言列 1 プラチナ 2010/1/10 あい78あいあ シート1のc列が2020/1/10以降かつ g列に 78 の文言を含む行を抽出し その結果の会員番号、会員ランク、会員登録日、謎の文言列を隣のシート2に貼り付けたいです。 全くの初心者で申し訳ないのですがどうぞよろしくお願いいたします。
回答: vbaなら、advancedfilterメソッドが便利です。 添付画像のような「抽出条件」シートを用意する必要があるのですが、条件(例えば日付)を変える場合など、そのシートの値を変えるだけでokです。 sub sample() sheets("日本会員").columns("a:g").advancedfilter _ action:=xlfiltercopy, _ criteriarange:=sheets("抽出条件").range("a1:b2"), _ copytorange:=sheets("書き出したシート").range("a1:d1"), _ unique:=false end sub ちなみに、「抽出条件」シートの値は、次のように設定しています(値をそのまま設定するのではなく、数式として設定します)。 a2セル =">=2020/06/02" b2セル ="*78*"