我有一个Excel宏来修改EXIF"日期和#34; JPG照片的字段。基本上我从我从EXIF数据中检索的日期时间值中添加或减去一个十进制值,然后将新的日期时间值放回去。
例如,如果TimeDelta是12.0,那么它应该将日期时间值提前1/2天(12小时)。如果TimeDelta是36.0,那么它应该将日期时间值提前1天12小时。
它正常工作 - 我输了秒,即日期,小时和分钟是正确的,但是有00秒。
以下是我的代码摘录:
Dim sDateTemp As String, NewDateTaken As Date, TimeDelta As Single, Time24 As Single
Time24 = 24#
NewDateTaken = CDate(sDateTemp) + (TimeDelta / Time24)
关于出了什么问题的任何想法?
答案 0 :(得分:0)
我不确定你是如何实施转换程序的,但你不应该失去秒数。
Sub t()
Dim sDateTemp As String, NewDateTaken As Date, TimeDelta As Single, Time24 As Single
Time24 = 24#
TimeDelta = Int(12) 'no sense in pretending that we can get a decimal into a single
sDateTemp = "26-AUG-2015 09:36:45"
Debug.Print sDateTemp
Debug.Print CDate(sDateTemp)
NewDateTaken = CDate(sDateTemp) + (TimeDelta / Time24)
Debug.Print NewDateTaken
End Sub
VBE立即窗口的结果:
t
26-AUG-2015 09:36:45
08/26/2015 9:36:45 AM
08/26/2015 9:36:45 PM