人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excelに関する質問です。特定のキーワードを含む行全てを1つずつ、別シートに移動させるマクロはないでしょうか。

Sheet1のF列に、ずらりとデータが10000行近く並んでおります。
この中から、「りんご」という文字列を含む(前文一致・後文一致・部分一致)セルがあった場合、そのセルのある“行”を全て“切り取り”し、Sheet2のシートに移すことは出来ないでしょうか。

“切り取り”ではなく“コピー”でも問題ないのですが、Sheet1からは「りんご」文字列を含むデータを後に削除したいです。

よろしくお願い致します。

●質問者: moon-fondu
●カテゴリ:コンピュータ 学習・教育
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● やじるし
●10ポイント

https://www.youtube.com/watch?v=OSORil3rF9M
http://superdbtool.com/blog/wp/wp-content/uploads/2015/06/1434194262.PNG


moon-fonduさんのコメント
ありがとうございます。動画を拝見しました。表作ったり、少し大変そうですね。。。

2 ● Mook
●50ポイント

1行目はタイトル行の前提です。

Sub MoveData()
 Const KeyWord = "りんご"
 
 Dim srcWS As Worksheet
 Set srcWS = Worksheets("Sheet1")
 
 Dim dstWS As Worksheet
 Set dstWS = Worksheets("Sheet2")
 dstWS.Cells.Clear
 
 If srcWS.AutoFilterMode Then srcWS.AutoFilterMode = False
 srcWS.UsedRange.AutoFilter Field:=6, Criteria1:="=*" & KeyWord & "*"
 srcWS.Range("A1").CurrentRegion.EntireRow.Copy dstWS.Range("A1")
 
 srcWS.Range("A1").CurrentRegion.EntireRow.Delete
 
 srcWS.AutoFilterMode = False
 srcWS.Rows(1).Insert
 dstWS.Rows(1).Copy srcWS.Rows(1)
End Sub

moon-fonduさんのコメント
ありがとうございます!マクロは実行できたのですが…なぜかデータを移動させたり、うまくいきませんでした。タイトル行の後に空白の行とかいろいろあったからでしょうか・・・。

3 ● きゃづみぃ
●300ポイント ベストアンサー
Sub main()
Dim a As Long
Dim b As Long
Dim c As Long

移動元シート = "Sheet1"
移動先シート = "Sheet2"

b = Worksheets(移動元シート).Cells(Rows().Count, "F").End(xlUp).Row
c = Worksheets(移動先シート).Cells(Rows().Count, "F").End(xlUp).Row
If c = 1 And Worksheets(移動先シート).Cells(1, "F") = "" Then
Else
 c = c + 1
End If
 

For a = b To 1 Step -1
 If InStr(Worksheets(移動元シート).Cells(a, "F"), "りんご") > 0 Then
 
 Worksheets(移動元シート).Rows(a).Cut
 Worksheets(移動先シート).Rows(c).Insert Shift:=xlDown
 Worksheets(移動元シート).Rows(a).Delete Shift:=xlUp
 c = c + 1
 End If
Next a

End Sub


moon-fonduさんのコメント
うまくデータを別シートに移動できました!ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ