Sub CopyDataToSummary()
Dim wbSummary As Workbook
Dim wsTranscribe As Worksheet
Dim wsBalance As Worksheet
Dim folderPath As String
Dim fileName As String
'Dim dateToFind As String
Dim dateToFind As Date
Dim foundDate As Range
' 日報集計ブックを設定
Set wbSummary = ThisWorkbook
Set wsTranscribe = wbSummary.Sheets("転記")
'日付を取得
dateToFind = wsTranscribe.Range("C3").Value
Debug.Print dateToFind
' 指定されたフォルダ内のファイルを検索
folderPath = "H:\XXXXX\★AAAAAAA\BBBBBBBB\CC商品別売上日報 生データ"
' フォルダのパスを指定
fileName = Dir(folderPath & "\商品別売上日報" & Format(dateToFind, "eemmdd")& ".xlsx")
Debug.Print folderPath
Debug.Print fileName
' ファイルが見つかった場合
If fileName <> "" Then
'ブックを開く
Set wb = Workbooks.Open(folderPath & "\" & fileName)
Set wsBalance = Worksheets("商品別売上日報(当日・前月)") wsBalance.Select
' 商品別売上日報(当日・前月)をコピーして貼付け
CopyAndPasteData wsBalance.Range("F8:F28"),wbSummary.Sheets("商品A"), dateToFind
CopyAndPasteData wsBalance.Range("G8:G28"),wbSummary.Sheets("商品B"), dateToFind
CopyAndPasteData wsBalance.Range("J8:J28"),wbSummary.Sheets("商品C"), dateToFind
CopyAndPasteData wsBalance.Range("K8:K28"),wbSummary.Sheets("商品D"), dateToFind
CopyAndPasteData wsBalance.Range("L8:L28"),wbSummary.Sheets("商品E"), dateToFind
CopyAndPasteData wsBalance.Range("N8:N28"),wbSummary.Sheets("商品F"), dateToFind
CopyAndPasteData wsBalance.Range("O8:O28"),wbSummary.Sheets("商品G"), dateToFind
CopyAndPasteData wsBalance.Range("P8:P28"),wbSummary.Sheets("商品H"), dateToFind
CopyAndPasteData wsBalance.Range("Q8:Q28"),wbSummary.Sheets("商品I"), dateToFind
CopyAndPasteData wsBalance.Range("R8:R28"),wbSummary.Sheets("商品J), dateToFind
CopyAndPasteData wsBalance.Range("T8:T28"),wbSummary.Sheets("商品K"), dateToFind
CopyAndPasteData wsBalance.Range("W8:W28"),wbSummary.Sheets("商品L"), dateToFind
CopyAndPasteData wsBalance.Range("X8:X28"),wbSummary.Sheets("商品M"), dateToFind
CopyAndPasteData wsBalance.Range("Y8:Y28"),wbSummary.Sheets("商品N"), dateToFind
'ブックを閉じる
ActiveWorkbook.Close
Else
MsgBox "指定された日付の残高日報が見つかりませんでした。"
End If
End Sub
Sub CopyAndPasteData(rngSource As Range, wsTarget As Worksheet,
dateToFind As Date)
Dim cell As Range
Dim rngTarget As Range
Dim wrng As Range
Set rngTarget = Nothing
For Each wrng In
wsTarget.Range("F1:Z1,F25:Z25,F49:Z49,F73:Z73,F97:Z97,F121:Z121")
If wrng.Value = dateToFind Then
Set rngTarget = wrng
Exit For
End If
Next
If Not rngTarget Is Nothing Then
'貼り付ける
rngSource.Copy
wsTarget.Cells(rngTarget.Row + rngSource.Row -
rngSource.Cells(0, 1).Row, rngTarget.Column).PasteSpecial
Paste:=xlPasteValues
Application.CutCopyMode = False
End If
End Sub