|
excel上で時間表記されているカラムの足し算を行うと、
足し算の結果セルがyyyy/mm/dd h/mm/ss表記になってしまいました。
また、足し算の合計値が想定と違う結果になってしまいます
元excelのシート
TEST, 1, TEST, 3577:00:59
TEST, 3, USR2, 3330:25:19
TEST, 3, USR2, 3381:50:06
TEST, 15, USR3, 8:41:14
TEST, 15, USR3, 5:41:03
TEST, 15, USR3, 0:28:32
TEST, 15, USR3, 2:26:55
TEST, 18, USR3, 10:14:12
TEST, 18, USR3, 5:17:49
TEST, 18, USR3, 0:22:22
TEST, 18, USR3, 3:30:58
TEST, 19, USR4, 0:46:43
TEST, 19, USR4, 0:39:59
TEST, 19, USR4, 3:33:07
TEST, 19, USR4, 3:36:23
TEST, 19, USR4, 0:59:02
TEST, 19, USR4, 0:31:00
上記の状態で、カラム2が同一の番号の時間(カラム4)を合計しようとしています。
With Worksheets("元")
For i3 = 2 To .Cells(Rows.Count, "B").End(xlUp).Row
vK2 = .Cells(i3, "B").Value
dic2(vK2) = dic2(vK2) + .Cells(i3, "D")
Next
End With
ReDim vA3(1 To dic2.Count, 1 To 2)
i3 = 0
For Each vK2 In dic2.Keys
i3 = i3 + 1
vA3(i3, 1) = vK2
vA3(i3, 2) = dic2(vK2)
Next
Application.ScreenUpdating = False
With Worksheets("出力先")
With .Range("A1").Resize(i3, 2)
.EntireColumn.ClearContents
.Value = vA3
.Columns(2).NumberFormatLocal = "h:mm:ss"
.Columns(4).NumberFormatLocal = "h:mm:ss"
Application.Goto .Cells(1), True
End With
End With
Application.ScreenUpdating = True
Rows(1).Insert
上記を実行したとき、出力先のカラム2の値がyyyy/mm/dd h/mm/ss表記(カラム2が15の列 ⇒ 1900/1/4 15:18:37)
となり、また、合計値が正常でない値(01:17:44と出る予定)が出力されてしまいます
上記コードのどこが誤っているのでしょうか?
お分かりになられる方、よろしくお願いいたします
また、出力先の列を変更する場合、
(ここでは、1・2列目に出しているものを、1・3列目にしたい)
はどこを変えればよいのでしょうか?
|
|