- ベストアンサー
検索後、行を抽出するマクロ
エクセルのシート1、A列からE列まで1~800のセルにテキストが入力されいます A列を検索(部分一致)し、ヒット(複数)した行をシート2へコピーしていのですが出来ません。 因みに、A列は文字列で「赤エンピツ、黄エンピツ」などでエンピツと検索してら両方抽出したいです。 初心者で何も判らず本等を読んでも訳判りません、どなたか御教授よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> 初心者で何も判らず でも、コード記入先や使い方くらいはわかるんですよね? Sub test01() Dim ws1 As Worksheet, ws2 As Worksheet Dim rng As Range Dim myStr, ra, rr myStr = InputBox("検索する文字", " (´^∇^)σ 入力してください", "") If myStr = "" Then MsgBox "検索文字未指定", vbCritical, " Σ( ̄ロ ̄lll)" Exit Sub End If Set ws1 = Sheets("Sheet1") '検索 シート Set ws2 = Sheets("Sheet2") '貼付先シート With ws1.Columns("A") '部分一致で検索(A列) Set rng = .Find(What:=myStr, LookAt:=xlPart, After:=.Cells(.Cells.Count)) If rng Is Nothing Then 'なかったら MsgBox "ありません", vbCritical, myStr & "? ( ̄~ ̄;)う~ん " Else 'あったら ra = rng.Address '最初に見つかったセルアドレス Do rr = rr + 1 'カウント rng.EntireRow.Copy Destination:=ws2.Cells(rr, 1) '行のコピペ Set rng = .FindNext(rng) '連続検索 Loop While rng.Address <> ra '繰り返し Set rng = Nothing End If End With MsgBox rr & "件をSheet2に抽出しました。", vbInformation, " ( ̄ー ̄)v" Set ws1 = Nothing Set ws2 = Nothing End Sub
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
Excel(エクセル) VBA入門:オートフィルタ(AutoFilter)でのデータ抽出 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_autofilter.html 考え方の一例としてご参考まで。
お礼
参考にしますありがとうございます
お礼
コピーしてそのまま使えました、ありがとう御座いますm(_ _)m