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

一致したら転記したい

投稿者 : ゴジラ     投稿日時 : 2025/03/08(Sat) 01:13:25     OS : 未指定     EXCEL : 未指定
ごめんなさい、初心者ですが教えてください。
シートAにある出勤時間と退勤時間が、シートBの勤時間と退勤時間が一致したら、シートAで設定した休憩時間をシートBの一致した行の休憩時間に転記したいです。
シートAの出勤時間と退勤時間が空白の場合はスキップし、次の行に行き、最終行まで実行するというようなマクロは可能でしょうか?
すいませんが、詳しいかたよろしくお願いいたします。

参考画像シートA:https://ibb.co/cS3K5hqv
参考画像シートB:https://ibb.co/sJWv4K73

スポンサーリンク
[返信 1] Re : 一致したら転記したい
投稿者 : てらてら     投稿日時 : 2025/03/08(Sat) 05:09:10
こんにちは。
参考にしてみてください。

Sub macro()
    Dim sh1 As Worksheet
    Dim sh2 As Worksheet
    
    Set sh1 = Sheets("シートA")
    Set sh2 = Sheets("シートB")
    
    Dim i As Long, j As Long
    Dim lastRow As Long
    lastRow = sh2.Cells(Rows.Count, 1).End(xlUp).row
    
    For i = 2 To lastRow
        For j = 31 To 40
            If sh1.Cells(j, "O") <> "" And sh1.Cells(j, "P") <> "" Then
                If sh1.Cells(j, "O") = sh2.Cells(i, "E") And _
                   sh1.Cells(j, "P") = sh2.Cells(i, "F") Then
                    
                    sh1.Range("R" & j & ":U" & j).Copy sh2.Cells(i, "G")
                    Exit For
                    
                End If
            End If
            
        Next j
    Next i
    
End Sub

[返信 2] Re : 一致したら転記したい
投稿者 : ゴジラ     投稿日時 : 2025/03/08(Sat) 11:03:15
教えていただきありがとうございます!
おかげさまで、解決できました!

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

ステータス  :

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




( 処理日時 : 2025-07-03 15:54:58 )
タイトルとURLをコピーしました