我正在处理日志或历史文件。在第1列中有时间戳,如2017年3月1日22:08:01 2017年。 我正在将工作表的全部内容复制到2d变量数组中以进行进一步处理。现在我想将此时间戳存储为日期或日期时间以进一步处理它。
但如果我这样做
dim dTimeStamp as date
并在循环中使用它来存储column1的值 dTimeStamp = cdate(vbaseArray(I,1))
它给了我typemismatch错误。
有没有办法将时间戳值存储为日期或日期时间? 请建议。
答案 0 :(得分:1)
您无法自动将该字符串转换为日期,因此您必须对其进行解析。通常,DateValue
比CDate
更宽容。
从即时窗口
?datevalue(mid("Wed Mar 01 22:08:01 EST 2017",5,15))
3/1/2017
这将永远为您提供当年。它减少了一周中的某一天,并在此之后停止。
如果您需要年份,或者您只是想要更强大,我会使用像
这样的功能Function ConvertDate(ByVal sDate As String) As Date
Dim vaSplit As Variant
vaSplit = Split(sDate, Space(1))
ConvertDate = DateValue(vaSplit(1) & Space(1) & vaSplit(2) & ", " & vaSplit(5)) + TimeValue(vaSplit(3))
End Function
从即时窗口
?convertdate("Wed Mar 01 22:08:01 EST 2017")
3/1/2017 10:08:01 PM