|
▼ichinose さん:
>▼グライダーマン さん:
>こんばんは。
>
>> 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
> With Worksheets("sheet1")
> .[j1].Value = .[b1].Value
> .[j2].Value = TextBox1.Text
> With .Range("a1", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 5)
> .AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[sheet1!j1:j2], _
> CopyToRange:=[Sheet2!a1]
> End With
> End With
>End Sub
>
>アドバンスフィルタを使いました。
>Sheet1のセルJ1〜J2が検索条件入力セルになっています。
>これはどこでもかまいません。
>確認してみて下さい。
ichinoseさん、お答えどうもありがとうございます。
このコードを入力して実行してみましたが、
<RangeクラスのAdvancedFilterメソッドが失敗しました>
とエラーが出ました。
それを無視して実行してみましたが、抽出されずにSheet1のデータがSheet2に貼り付けられました。私のやり方が悪いのかも知れませんが。
それとコードに説明文を付け加えてもらえませんかちょっと私には難しい
ところが多々有りました。
この質問が解決したら、一段落してもう少し自分でスキルアップしてみたいと思います。
どうぞよろしくお願いします。
|
|