Excel VBA 質問スレッド №2087 (解決済)

3つ一致したら転記

投稿者 : ウソップ     投稿日時 : 2025/02/27(Thu) 00:53:52     OS : Windows 11     EXCEL : 未指定
シート前月(仮に4月)の獲得数を、シート今月(仮に5月)の4月列に転記したいです。
転記元の月はシート前月のB1セルから取得を考えています。
名前は入れ替わることがあるので名前の一致を確認したうえで転記したいです。
新しい月になったら前月の獲得数を今月分に転記していくマクロを教えていただけないでしょうか?
マクロ詳しい方、なにとぞよろしくお願いします。

シート前月:https://ibb.co/5WPmVvRP
シート今月:https://ibb.co/zHnPj5xt

スポンサーリンク
[返信 1] Re : 3つ一致したら転記
投稿者 : てらてら     投稿日時 : 2025/02/27(Thu) 06:00:20
こんにちは。
参考にしてみてください。

Sub macro()
    Dim i As Long, j As Long, cnt As Long
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    Set sh1 = Worksheets("4月")
    Set sh2 = Worksheets("5月")
    
    Dim col As Long
    For i = 8 To 19
        If sh1.Range("B1") = sh2.Cells(3, i) Then
            col = i
            Exit For
        End If
    Next i
    
    If col = 0 Then
        MsgBox "該当する月が見つかりませんでした。"
        Exit Sub
    End If
    
    For i = 4 To 100
        If sh1.Cells(i, "B") = "" Then Exit For
        For j = 4 To 100
            If sh1.Cells(j, "B") = "" Then Exit For
            
            If sh1.Cells(i, "B") = sh2.Cells(j, "B") And sh1.Cells(i, "C") = sh2.Cells(j, "C") Then
                For cnt = col To 8 Step -1
                    sh2.Cells(j, cnt) = sh1.Cells(i, cnt)
                Next cnt
                Exit For
            End If
                
        Next j
    Next i
    
End Sub

[返信 2] Re : 3つ一致したら転記
投稿者 : ウソップ     投稿日時 : 2025/02/27(Thu) 16:22:29
てらてら様。
当月より過去の分も転記するようにしてくださったのですね。
おかげさまで解決しました。
ありがとうございました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-05 17:50:19 )
タイトルとURLをコピーしました