Excel VBA質問箱 IV

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

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


14458 / 76734 ←次へ | 前へ→

【67772】Re:特定の値を含む行の抽出で困っています。
発言  UO3  - 11/1/7(金) 11:41 -

引用なし
パスワード
   ▼lawry さん:

こんにちは

まず、ご提示のコードにインデントを付けますと見やすくなります。
で、この見やすくしたコードをつらつら眺めますと、修正すべきところ、改善できるところが
見えてきます。

まず、With Worksheets("sheet1")
これ自体は、大変結構なことですが、Withでシートを修飾した後のEnd With までの
セル領域には頭に .(ピリオド)をつけて、初めて有効になります。
ところが、ご提示のコードは、たとえば Range(Cells(i, 1) 。
これではWithが全く活かされていません。たまたま、マクロを実行するときにアクティブだった
シートのセルになります。仮にSheet1以外がアクティブな状態で実行すると、とんでもないことに
なりますね。全て .Range(.Cells(i, 1) といったように記述することが必要です。

特定の文字列を含む行を別シートに抽出するというテーマですから、通常ならAdvancedFilterを
用いるのが効率もいいとは思いますが、今回の場合、特定列が空白だったらSheet2。
ただし、その行が全て空白ならコピー対象からはずすということでしょうから、
・特定文字列があるものを抽出する部分はAdvancedFilter、行全体が空白ではなく、特定列が
空白だったらSheet2という部分のみをループ処理させる手もありますね。

あ、(私が誤解していないとすれば)、Sheet2へコピーしてからSheet2の空白行を削除するより
1行全体が空白ならコピーからはずすというやり方のほうがよろしいですよ。

0 hits

【67755】特定の値を含む行の抽出で困っています。 lawry 11/1/6(木) 17:27 質問
【67770】Re:特定の値を含む行の抽出で困っています。 Jaka 11/1/7(金) 10:54 発言
【67774】Re:特定の値を含む行の抽出で困っています。 lawry 11/1/7(金) 13:29 お礼
【67772】Re:特定の値を含む行の抽出で困っています。 UO3 11/1/7(金) 11:41 発言
【67773】Re:特定の値を含む行の抽出で困っています。 UO3 11/1/7(金) 12:20 回答
【67775】Re:特定の値を含む行の抽出で困っています。 lawry 11/1/7(金) 14:30 お礼

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