Excel VBA 创建日期+时间值

jac*_*_wi 1 excel vba date

在我的表中,我有两列包含以下类型的数据:yyyymmddhhmmddxx- 第一个包含日期,另一个时间精度为 0.01 秒。例如,我有2016110217052349

我想将其转换为显示某个时刻的单个值并以格式显示dd/mm/yyyy hh:mm:ss.xx,例如,我想将02/11/2016 17:05:23.49. 我想我需要使用DateSerialTimeSerial函数,但是有两个问题我不知道如何解决:

  1. TimeSerial 接受小时、分钟和秒作为参数,都是整数类型,如何将秒的分数传递给它?
  2. DateSerial 将创建我的日期,TimeSerial 将创建我的时间,是否有一个函数将日期和时间作为参数并从中创建一个“那一天,那个时间”值?

Nat*_*Sav 5

像这样的,也许??

? generate_timestamp("20161102","170522349")

02/11/2016 17:05:23.49

Function GENERATE_TIMESTAMP(strDate As String, strTime As String) As String

Dim dtDate As Date
Dim dtTime As Date

dtDate = DateSerial(Mid(strDate, 1, 4), Mid(strDate, 5, 2), Mid(strDate, 8, 2))
dtTime = TimeSerial(Mid(strTime, 1, 2), Mid(strTime, 3, 2), Mid(strTime, 6, 2))

GENERATE_TIMESTAMP = FormatDateTime(dtDate, vbShortDate) & " " & _
                        FormatDateTime(dtTime, vbLongTime) & "." & _
                        Mid(strTime, 8, 2)

End Function
Run Code Online (Sandbox Code Playgroud)