Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


26349 / 76732 ←次へ | 前へ→

【55714】Re:Find検索からFindNext が作動できない
発言  kanabun  - 08/5/16(金) 15:41 -

引用なし
パスワード
   ▼yukio さん:
>初めて目にするフィルタオプションですので早速コードを作ってみました。
>データの少ないサンプルでコードを作り動かしてみたら問題がなかったので、
> 現在使っているファイルに利用したところ、項目だけが横に並ぶのですが
> データが抽出されてきません。いろいろいじったのですが原因が掴めません。
> アドバイスをお願いいたします。

の件ですが、

>  Union(Range("E2:H2"), Range("K2")).Select
>  Selection.Copy

のところで、どのシートかを指定せずに範囲を選択 Copy しています
ここは、「CD目録」シートの必要見出しを「仮抽出」シートにコピーしてい
るところと思われますが、Rangeの前にシートの指定がないので、
仮にアクティブなシートが仮抽出のほうだとすると、
空白セルがコピーされます。その結果、AdvancedFilterの抽出先の
項目名が空白でエラーになります。
ま、
> 項目だけが横に並ぶのですが
ということなので ActiveSheetは「CD目録」のほうにあったのでしょうが。

あと、Copy貼り付けするときに シートの選択は不要です。
どのシートのどのセル範囲を どのシートのどこのセルに 貼り付ける
のように Selectなしで一気に書いてください。
よく言われるように、 Select Selection に頼ったコードは
画面がチラチラするし、コードの可読性も劣るので、Selectは
ほんとうにそれが必要な時以外は避けるようにしましょう。

その点を考慮して、若干修正すると以下のようですが、

Sub ADF抽出2()
 Dim MaxRows As Long

 Worksheets("仮抽出").Range("A:E").Clear
 
 With Worksheets("CD目録")
   .Range("T1").Value = "種別"
   .Range("T2").Value = "交響曲"
   .Range("U1").Value = "作曲者名"
   .Range("U2").Value = "ハイドン"
   MaxRows = .UsedRange.Rows.Count
   Union(.Range("E2:H2"), .Range("K2")).Copy _
       Sheets("仮抽出").Range("A1")

   .Range("C2:K" & MaxRows).AdvancedFilter _
     Action:=xlFilterCopy, _
     CriteriaRange:=.Range("T1:U2"), _
     CopyToRange:=Worksheets("仮抽出").Range("A1:E1")
 End With
End Sub

こちらの簡単なサンプルデータでのテストでは もともとの
yukio さんのコードでも
「交響曲」「ハイドン」はちゃんと抽出されましたから
> コードに間違いがある
のではないような気がします。
たとえば 「交響曲」「ハイドン」は完全一致で検索なんですよね?
〜が含まれる(部分一致)ではないですよね?

0 hits

【55513】Find検索からFindNext が作動できない yukio 08/5/9(金) 10:20 質問
【55517】Re:Find検索からFindNext が作動できない ひげくま 08/5/9(金) 10:50 回答
【55531】Re:Find検索からFindNext が作動できない yukio 08/5/9(金) 19:29 お礼
【55533】Re:Find検索からFindNext が作動できない kanabun 08/5/9(金) 19:46 発言
【55541】Re:Find検索からFindNext が作動できない yukio 08/5/10(土) 14:36 お礼
【55543】Re:Find検索からFindNext が作動できない kanabun 08/5/10(土) 15:31 発言
【55703】Re:Find検索からFindNext が作動できない yukio 08/5/16(金) 11:10 お礼
【55704】Re:Find検索からFindNext が作動できない kanabun 08/5/16(金) 11:29 発言
【55714】Re:Find検索からFindNext が作動できない kanabun 08/5/16(金) 15:41 発言
【55733】Re:Find検索からFindNext が作動できない yukio 08/5/17(土) 13:44 お礼
【55735】Re:Find検索からFindNext が作動できない kanabun 08/5/17(土) 13:50 発言
【55534】Re:Find検索からFindNext が作動できない ひげくま 08/5/9(金) 19:47 発言
【55542】Re:Find検索からFindNext が作動できない yukio 08/5/10(土) 15:00 お礼
【55591】Re:Find検索からFindNext が作動できない ひげくま 08/5/12(月) 14:37 回答
【55699】Re:Find検索からFindNext が作動できない yukio 08/5/16(金) 9:12 お礼
【55705】Re:Find検索からFindNext が作動できない テト 08/5/16(金) 11:43 発言
【55737】Re:Find検索からFindNext が作動できない yukio 08/5/17(土) 14:16 お礼

26349 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free