如何将20120103之类的数字转换为Excel可识别的日期?

pha*_*han 1 excel datetime vba

我有一个8位数字,告诉我日期,YYYYMMDD.如何将此数字转换为Excel将识别为日期的日期.

我们假设单元格A1中有20120229 ...我该怎么办?

Jea*_*ett 7

既然你标记了这个问题VBA,我假设你想要一个VBA的答案,所以你走了:

Dim l As Long
Dim s As String
Dim d As Date

l = Range("A1").Value ' 20120229

' convert it to a string 
s = CStr(l)

' can now use string functions to parse it
d = DateSerial(CInt(Left(s, 4)), CInt(Mid(s, 5, 2)), CInt(Right(s, 2)))
' d is now 29 Feb 2012

' write it back to the sheet
Range("A2").Value = d
Run Code Online (Sandbox Code Playgroud)


Mát*_*lei 5

使用以下公式:=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))其中A1是单元格坐标。

  • 仅供参考,要将公式插入VBA,您可以使用`evaluate`函数或仅将其用[[]括起来。当您要对数组进行操作但需要注意确保结果也是数组时,这可能很有用。例如,要将范围a1:a9转换为日期,您可以输入:`[a1:a9] = [if({1},text(a1:a9,“ 0000-00-00”))]] (2认同)