|
こんにちは。かみちゃん です。
>各日付ごとの時間の合計を、
>下記のようなA列に日付を書いた同一ブックの"シート2"のB列に入力していきたい
私も、似たような日別集計を以下のようなコードでしています。
Sub Macro1()
Dim LastCell As Range
Dim c As Range
'日別集計用の変数31要素
Dim vntData(31) As Long
Sheets("Sheet1").Activate
Set LastCell = Cells(Cells.Rows.Count, 1).End(xlUp)
For Each c In Range("A1", LastCell)
'24時をまたがる場合の経過時間の集計
If c.Offset(, 1).Value >= c.Offset(, 2).Value Then
vntData(Val(c.Value) - 1) = vntData(Val(c.Value) - 1) + DateDiff("n", c.Offset(, 1).Value, TimeSerial(24, 0, 0))
vntData(Val(c.Value) - 1) = vntData(Val(c.Value) - 1) + DateDiff("n", TimeSerial(0, 0, 0), c.Offset(, 2).Value)
Else
vntData(Val(c.Value) - 1) = vntData(Val(c.Value) - 1) + DateDiff("n", c.Offset(, 1).Value, c.Offset(, 2).Value)
End If
Next
Sheets("Sheet2").Range("B1").Resize(UBound(vntData)).Value = Application.Transpose(vntData)
MsgBox "集計完了"
End Sub
|
|