- ベストアンサー
エクセルで検索結果を抽出し、別シートにコピーしたい
- エクセルで検索結果を抽出し、別のシートにコピーする方法について教えてください。
- エクセルのシート1に記載されている情報から、検索ボックスに入力したキーワードに一致する行だけをシート2にコピーする方法を教えてください。
- エクセルで特定のキーワードで検索し、該当する行だけを別のシートにコピーする方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>A1を検索ボックスとし、ここに入れた言葉を検索し、 と >a = InputBox("検索したい文字を入力してください。") がかみ合いませんが。 Findメソッドでのデータ検索 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_find.html#find この事ではないかと。 データの範囲及びシート2の貼付ける位置が不明ですが。 InputBoxで値を入力し、シート1の全セルを検索範囲とし、シート2の1行目に貼付けるとするなら、 Sub try() Dim str As Variant Dim r As Range str = InputBox("検索したい文字を入力してください。") If str = "" Then Exit Sub Set r = Worksheets("Sheet1").Cells.Find(What:=str, LookIn:=xlValues, _ LookAt:=xlWhole) If r Is Nothing Then Exit Sub r.EntireRow.Copy Worksheets("Sheet2").Rows(1) Set r = Nothing End Sub こんなとか?
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
#1です。 >一点教えて頂きたいのですが、これは検索結果が複数あった場合、 >コピーが出来ないのでしょうか。 >出来れば、検索した内容が含まれている行ごと、なおかつ複数ある >場合は全てを貼り付けたいのですが、可能でしょうか。 Sub try_next() Dim str As Variant Dim r As Range Dim r1 As Range, r2 As Range str = InputBox("検索したい文字を入力してください。") If str = "" Then Exit Sub Set r = Worksheets("Sheet1").Cells.Find(What:=str, LookIn:=xlValues, _ LookAt:=xlWhole) If r Is Nothing Then Exit Sub Set r1 = r Set r2 = Worksheets("Sheet2").Range("A1") Do r.EntireRow.Copy r2.EntireRow Set r = Worksheets("Sheet1").Cells.FindNext(r) Set r2 = r2.Offset(1) Loop Until r.Address = r1.Address Set r = Nothing Set r1 = Nothing Set r2 = Nothing End Sub こんな感じの事でしょうか?
お礼
早速のご回答ありがとうございました。 早速試してみました。 まさにこんな感じのことがしたかったです!! 一点教えて頂きたいのですが、これは検索結果が複数あった場合、 コピーが出来ないのでしょうか。 出来れば、検索した内容が含まれている行ごと、なおかつ複数ある 場合は全てを貼り付けたいのですが、可能でしょうか。 ご教授頂けますと幸いです。 ご回答ありがとうございました。