前提・実現したいこと
初めまして
条件に一致した行にあるセルを別シートへコピーする(振り分ける)コードを作成したいと考えています。
Sheet1の6行目以降にデータがあり、A行にある文字により、各シートの8行目移行へname2とname4を振り分けていきたいです。(name3はそのままです)
※下の画像(Sheet1)のname1にaaaがあったらSheet1のB列をシートaaa(上画像)のA列に、Sheet1のD列をシートaaaのB列へコピーしたいです。 (シート名などわかりにくくてすいません)
![]
該当のソースコード
Sub wS() Set ws1 = Worksheets("Sheet1") Set ws2 = Worksheets("aaaa") j = 8 For i = 6 To ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row f = ws1.Cells(i, 1).Value If f = "aaaa" Then ws2.Cells(j, 1) = f End If j = j + 1 Next i End Sub
こちらのコードはaaaシートのみ対応でテスト的に作成したものです。
⓵行が8行目以下そのままの感覚でコピーされてしまいます。
⓶また name1とname3のみコピーという離れたセルのコピーも出来ていません
Sub Sample1() Dim i As Long, k As Long Dim wS As Worksheet Dim myFlg As Boolean Dim myAry myAry = Array("aaaa", "bbbb", "cccc") With Worksheets("Sheet1") For i = 6 To .Cells(Rows.Count, "A").End(xlUp).Row For k = 0 To UBound(myAry) If .Cells(i, "A") = myAry(k) Then myFlg = True Exit For End If Next k If myFlg = True Then Set wS = Worksheets(myAry(k)) wS.Cells(Rows.Count, "A").End(xlUp).Offset(1) = .Cells(i, "B") End If myFlg = False Next i End With End Sub
他サイトでもみて上記の物を作成してみましたが、目的が果たせずこちらに質問をさせて頂きました。
どうかお力をお貸し下さい。宜しくお願いします。
>A行にある文字により各シートの8行目移行へ
このA行はA列のことでしょうか?
また上の画像はどのシートを指していますか?
どのシートの何をどこのシートのどのセルへどうしたいかをもう少し具体的に書いた方がいいと思います。
VBAコードはMarkdown表記してください。
(インデントのないコードは読む気になりません)
最近、多いのですが、くだらない条件ばっかならべて読む気になりません。
サンプルなのだからA1とかA2スタートにすればいいと思うんですけど
わからない質問者に限って、転記セルがどうでもいい場所からはじまるとか
条件が明確でないとか、そもそもなんだかなーという。
一意見なので。スルーでOK。
皆様多数のご指摘ありがとうございます。

回答1件
あなたの回答
tips
プレビュー