エクセルVBAで元のシート上の特定の記号(a1,a2,a3,a4)を含む行を別シート(Sheet a1,Sheet a2,Sheet a3,Sheet a4)に行ごとカット&コピーしたいのですが、うまくいきません。
教えていただけたら幸いです。
よろしくお願いいたします。
A B C D ... M N
1 a1
2 a1
3 a3
... ...
46 a2
記号はC列です。
全くの初心者なんでvbeのどこに貼り付けたらいいかも教えてください!
よろしくお願いいたします❗
No.2ベストアンサー
- 回答日時:
こんにちは!
>行ごとカット&コピーしたい・・・
カット&コピーだと元のシートが空白だらけになりますので
とりあえず「コピー&ペースト」にしてみました。
一例です。
尚、元データはシート名「Sheet1」にあり、他のシートは
「Sheet a1」「Sheet a2」・・・のようにSheet+半角スペース+a1 のようなシート名になっていて
貼り付け先シートはすべて存在する!という前提です。
そして、各シートとも1行目は項目行でデータは2行目以降にあるとします。
標準モジュールにしてください。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)マクロを実行します。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1()
Dim i As Long, k As Long
Dim sN As String, myFlg As Boolean, myAry
myAry = Array("a1", "a2", "a3", "a4")
With Worksheets("Sheet1")
For i = 2 To .Cells(Rows.Count, "C").End(xlUp).Row
For k = 0 To UBound(myAry)
If InStr(.Cells(i, "C"), myAry(k)) > 0 Then
myFlg = True
Exit For
End If
Next k
If myFlg = True Then
sN = "Sheet " & myAry(k)
.Rows(i).Copy Worksheets(sN).Cells(Rows.Count, "A").End(xlUp).Offset(1) '//★//
End If
myFlg = False
Next i
End With
End Sub
※ どうしても「カット&コピー」にしたい場合は「★」の行の
>Copy
を
>Cut
に変更してください。m(_ _)m
御丁寧にありがとうございます!
火曜日に会社で試してみます。
ちなみに、貼り付け先のシートにあるテーブルの最終行のしたにコピーできますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Visual Basic(VBA) 範囲を指定して別シートにコピペ 2 2022/09/15 07:32
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存 2 2022/04/18 13:15
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA セルの値と同じ名前のシー...
-
Excelの中央値の複数条件について
-
VBAのoffsetの動き方について教...
-
エクセルで入力シートから別シ...
-
IF, ISNUMBER, INDIRECTの組み...
-
指定した日付の範囲内でデータ...
-
EXCEL VBA 一致しないデータの...
-
Excelファイルサイズが大容量に...
-
エクセル マクロを使って日々...
-
ExcelVBAで、指定したシートに...
-
【Excel】VLOOKUP関数で複数の...
-
エクセル自動の年月
-
エクセルVBAで 指定のデーター...
-
エクセルで、他シートから統計...
-
Excel 複数のシートからグラフ...
-
Excelで数値→文字列変換で指数...
-
テキストボックス内の文字のふ...
-
エクセルでグラフタイトルが折...
-
Excelで行ごとコピー、同じ行を...
-
エクセルにおける、グラフの指...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで入力シートから別シ...
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
VBA セルの値と同じ名前のシー...
-
ExcelVBAで、指定したシートに...
-
Excel ハイパーリンク先のセル...
-
IF, ISNUMBER, INDIRECTの組み...
-
エクセルのワークシートが重く...
-
エクセル シフト勤務表から、...
-
VBAでシート名をセルから取得し...
-
エクセルで入力→日付を自動判別...
-
エクセルVBA:表の内容を担当者...
-
質問:特定文字列から空白行ま...
-
エクセル マクロを使って日々...
-
VBAのoffsetの動き方について教...
-
エクセル自動の年月
-
エクセル:複数シートのデータ...
-
ピボットテーブルから抽出デー...
-
エクセルについて質問です 日付...
-
Excelの選択肢をポップアップリ...
おすすめ情報