
お世話になっております。VBAで下記のようなものを作ろうとしましたが、わかりませんのでご教示願います。
①「sheet1」と「sheet2」があります。
②「sheet1」のC列に値が入っています。(複数行)
③「sheet2」のD列でその値を検索します。
④値があればその値のある行の一番右端のセルに、「sheet1」のD列にある値をコピーします。(検索した値の行の右端セル)
⑤それを「sheet1」のC列に値が入っているだけ繰り返し。
最終的に振り分けられた状態にしたいです。
マクロ初心者なのでソース頂けたら幸いです。
よろしくお願いいたします。

No.3ベストアンサー
- 回答日時:
No.1です。
何度もごめんなさい。
列を1列間違っていました。
Sheet2のC列とD列が違います。
前回のコードの
>For i = 4 To .Cells(Rows.Count, "C").End(xlUp).Row
を
>For i = 4 To .Cells(Rows.Count, "D").End(xlUp).Row
に
>Set FoundCell = wS.Range("C:C").Find(what:=.Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole)
を
>Set FoundCell = wS.Range("C:C").Find(what:=.Cells(i, "D"), LookIn:=xlValues, lookat:=xlWhole)
にそれぞれ変更してください。
どうも失礼しました。m(_ _)m
No.2
- 回答日時:
画像が小さくて詳細がよく判らないのですが、おそらくこういうコトだと解釈して・・・
「Sheet1」は個別データのシートで、
C列4行目以降がデータで、設置?機材の型式とシリアルNo.が書かれている。
「Sheet2」は台帳のようなシートで、
型式毎に、設置使用済み?のシリアルNo.を整理記入する。
「Sheet1」は、数回新しい設置情報?に全面書き換えられて、書き換えられた後で、
その情報からをシリアルNo.を、「Sheet2」の台帳に追記する。
Sub Sample()
Dim i As Long, iend As Long, j As Long, jend As Long, ii As Long
Dim wS1 As Worksheet, wS2 As Worksheet
Dim MTD As Variant
Set wS1 = Worksheets("Sheet1") ' 新規 data sheet
Set wS2 = Worksheets("Sheet2") ' 台帳 sheet
iend = wS1.Cells(Rows.Count, "C").End(xlUp).Row
jend = wS2.Cells(Rows.Count, "D").End(xlUp).Row
ii = iend - 3
MTD = wS1.Range("C4:D" & iend)
With wS2 ' 台帳sheet
For j = 4 To jend
For i = 1 To ii
If .Cells(j, 4) = MTD(i, 1) Then
.Cells(j, Columns.Count).End(xlToLeft).Offset(, 1) = MTD(i, 2)
End If
Next
Next
End With
End Sub
ご回答ありがとうございます。NO1の方のソースで動きましたので、今回はそちらを使わせていただきますが、yoreyoreさまのソースも活用させていきたいと思います。ありがとうございました。
No.1
- 回答日時:
こんにちは!
画像が小さくて詳細がよく判らないのですが、おそらくこういうコトだと解釈して・・・
「Sheet2」のC列4行目以降のデータが「Sheet1」のC列に存在すれば、
「Sheet1」のその行のD列データを「Sheet2」のD列以降右側に表示する!という解釈で・・・
というコトはSheet1に重複するデータが存在するのですかね?
関数でもできそうですが、VBAをご希望だというコトなので、一例です。
標準モジュールにしてください。
Sub Sample1()
Dim i As Long, wS As Worksheet
Dim FoundCell As Range, FirstCell As Range
Set wS = Worksheets("Sheet1")
With Worksheets("Sheet2")
For i = 4 To .Cells(Rows.Count, "C").End(xlUp).Row
Set FoundCell = wS.Range("C:C").Find(what:=.Cells(i, "C"), LookIn:=xlValues, lookat:=xlWhole)
If Not FoundCell Is Nothing Then
Set FirstCell = FoundCell
GoTo 処理
Do
Set FoundCell = wS.Range("C:C").FindNext(after:=FoundCell)
If FoundCell.Address = FirstCell.Address Then Exit Do
GoTo 処理
処理:
.Cells(i, Columns.Count).End(xlToLeft).Offset(, 1) = FoundCell.Offset(, 1)
Loop
End If
Next i
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、行の最後のセルの値をコピーして別sheetに張りつけるVBAコードをご教授願います 3 2022/11/20 14:35
- Visual Basic(VBA) VBAでvlookup関数から、別シート参照するやり方・・・ 2 2022/11/14 18:49
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Visual Basic(VBA) 改行ごとに行を追加し、数量を分割 4 2023/07/11 16:39
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) A列にある値をB列・C列にVBAで切り出し 3 2022/04/09 19:20
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
このQ&Aを見た人はこんなQ&Aも見ています
-
昔のあなたへのアドバイス
過去のあなたへ一度だけアドバイスを送れる電話があったとします。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
性格いい人が優勝
できるだけ性格いい人になって回答をお願いします。
-
単二電池
あなたの家に何本ありますか?
-
人生で一番お金がなかったとき
人生で一番お金がなかったときって、どんなときでしたか?
-
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
-
4
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
5
シート間で同じ値があったらコピペ
Visual Basic(VBA)
-
6
更新前と更新後の差分をVBAを使って抜き出したい
Excel(エクセル)
-
7
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
8
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
9
エクセルのマクロで条件一致のデータを別シート(複数)に転記したい
Visual Basic(VBA)
-
10
Excelにて、シート間で、データーを比較して、一致したら別シートへ転記するコードを教えてください。
Microsoft ASP
-
11
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
12
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
13
VBAでのリスト不一致抽出について
Visual Basic(VBA)
-
14
VBAで条件が一致する行をコピーしその1つ下へ挿入
Excel(エクセル)
-
15
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
16
【ExcelVBA】5万行以上のデータ比較の効率的な処理方法について
Visual Basic(VBA)
-
17
エクセルVBAでオートフィルター最上行を取得するには
Excel(エクセル)
-
18
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
19
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
20
別のシートから値を取得するとき
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
イタリアから帰国する際、肉製...
-
彼女のことが好きすぎて彼女の...
-
最近、飲酒すると手のひらが真...
-
健否~書類の書き方~
-
精子に血が・・・
-
風俗店へ行く前のご飯
-
エクセルで空白セルを含む列の...
-
値が入っているときだけ計算結...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
EXCELで条件付き書式で空白セル...
-
舌の裏の痛みのないプツプツの...
-
納豆食べた後の尿の納豆臭は何故?
-
これって喉仏ですか? 私は女性...
-
検便についてです。 便は取れた...
-
EXCELの条件付き書式で数式を空...
-
テスターで断線を調べる方法教...
-
鏡についてです。自分の体型を...
-
前立腺がん患者の射精について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
爪が紫色?
-
EXCELで条件付き書式で空白セル...
-
2つの数値のうち、数値が小さい...
-
VLOOKUP関数を使用時、検索する...
-
リンク先のファイルを開かなく...
-
エクセルで数式の答えを数値と...
-
小数点以下を繰り上げたものを...
-
値が入っているときだけ計算結...
-
エクセル指定した範囲からラン...
-
健否~書類の書き方~
-
勃起する時って痛いんですか? ...
-
イタリアから帰国する際、肉製...
-
エクセルで空白セルを含む列の...
-
風俗店へ行く前のご飯
-
精子に血が・・・
-
MIN関数で空白セルを無視したい...
-
ワードのページ番号をもっと下...
-
ある範囲のセルから任意の値を...
おすすめ情報