Excel VBA質問箱 IV

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

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


68030 / 76738 ←次へ | 前へ→

【13254】Re:テキストボックスで検索、出力
発言  ichinose  - 04/4/28(水) 22:43 -

引用なし
パスワード
   ▼グライダーマン さん:
こんばんは。
>>
>>>  A   B    C     D      E
>>> 日付   No   設備名   処置内容   交換部品
>>>3/1   1    ・      ・     ・
>>>  ・   3    ・      ・     ・
>>>3/3   1    ・      ・     ・
>>>  ・   7    ・      ・     ・
>>>  ・   2    ・      ・     ・
>>>  ・   4    ・      ・     ・
>>>  ・   3    ・      ・     ・
>>>  ・   ・    ・      ・     ・
>>>
>>>上記のような感じで下方向(Sheet1)へ毎日入力していきます。
>>>そこでユーザーフォームのテキストボックスに検索したい番号(B列)を入力し、
>>>その番号全部の行を(Sheet2)に貼り付けたいと思います。
>>>(上記の例では1を条件にすれば3/1と3/3の行がSheet2に貼り付けられます。)
>>>VBAに挑戦してやっと3ヶ月になりますが、どうも難しくてわかりません。
>>>どなたか教えてください。
>>ユーザーフォーム(Userform1)には、
>>  テキストボックス(Textbox1)
>>  コマンドボタン(Commandbutton1)
>>のふたつのコントロールを貼付けて下さい。
>>
>>テキストボックスに検索番号を入力します。
>>コマンドボタンのクリックで検索開始です。
>>標準モジュールに
>>'=========================================================
>>Sub main()
>>  UserForm1.Show vbModeless
>>End Sub
>>
>>フォームモジュールに
>>'=========================================================
>>Private Sub CommandButton1_Click()
>>  Worksheets("sheet2").Cells.ClearContents
'Sheet2の全てのセルをクリア
>>  With Worksheets("sheet1")
>>   .[j1].Value = .[b1].Value
'Sheet1のセルJ1にフィルタ条件の見出し項目・・、つまり「No」という文字列をセット
>>   .[j2].Value = TextBox1.Text
'Sheet1のセルJ2に抽出番号をセット
>>   With .Range("a1", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 5)
'Sheet1のA列を基準にして、データの入力範囲を見つけています
>>     .AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[sheet1!j1:j2], _
>>             CopyToRange:=[Sheet2!a1]
'フィルタ処理実行 フィルタ結果をSheet2のセルA1にコピーする
>>     End With
>>   End With
>>End Sub
>ichinoseさん、お答えどうもありがとうございます。
>このコードを入力して実行してみましたが、
><RangeクラスのAdvancedFilterメソッドが失敗しました>
>とエラーが出ました。
>それを無視して実行してみましたが、抽出されずにSheet1のデータがSheet2に貼り付けられました。私のやり方が悪いのかも知れませんが。
>それとコードに説明文を付け加えてもらえませんかちょっと私には難しい
>ところが多々有りました。
>この質問が解決したら、一段落してもう少し自分でスキルアップしてみたいと思います。
>どうぞよろしくお願いします。

[j1]は、Range("j1")と同じだと思って下さい。
Range〜と記述するより、簡単なのでセルが確定しているときは愛用しています。
><RangeクラスのAdvancedFilterメソッドが失敗しました>
のエラーがどうすれば出るのか探ってみましたが・・・。
.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[sheet1!j1:j2], _
             CopyToRange:=[Sheet2!a1]

この辺のシート名等は、間違っていませんよね?

それから、既存のデータで試すのは後にして、
まず、新規ブックに適当なサンプルデータを作成して
試してみて下さい。

尚、エラーの原因がまだわかっていませんのでExcelのバージョン等も
教えて下さい。

私の方でも再確認しましたが、動いていますが・・・。

0 hits

【13206】テキストボックスで検索、出力 グライダーマン 04/4/27(火) 17:34 質問
【13212】Re:テキストボックスで検索、出力 ichinose 04/4/27(火) 21:16 回答
【13253】Re:テキストボックスで検索、出力 グライダーマン 04/4/28(水) 20:59 質問
【13254】Re:テキストボックスで検索、出力 ichinose 04/4/28(水) 22:43 発言
【13263】Re:テキストボックスで検索、出力 グライダーマン 04/4/29(木) 14:16 お礼

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