Office中国论坛/Access中国论坛

标题: Excel挑战Access第二十六期:数值转日期 [打印本页]

作者: pureshadow    时间: 2016-6-26 10:48
标题: Excel挑战Access第二十六期:数值转日期
在录入日期的时候,总是有同学手贱喜欢用“伪日期”来冒充“真日期”,于是就有批量转换的麻烦了。
[attach]59361[/attach]

Excel中,这种转换简直是秒杀,而且方法也是多种多样,那,Access呢?

作者: t小宝    时间: 2016-6-26 21:20
献一下丑,Access可以用万能的Format:
CDate(Format("20160626","0000-00-00"))
作者: tmtony    时间: 2016-6-27 16:59
这题让小宝抢到了
我还以为 Roych手快呢?
小妖最近又要兴风作浪了? 看来又是连续出题的节奏!
作者: tmtony    时间: 2016-6-27 17:00
这题用VBA也可以,不过用VBA有点大材小用了, 还是小宝的方法来得简单。
作者: pureshadow    时间: 2016-6-27 18:02
只有Format和VBA,没别的招了?
作者: pureshadow    时间: 2016-6-28 15:37
要解决这个问题,VBA自然是不用说了……

  1. Sub Sample()
  2. Dim i As Long
  3. For i = 2 To 9
  4.     Cells(i, 2) = CDate(Format(Cells(i, 1), "0-00-00"))
  5. Next
  6. End Sub
复制代码


作者: pureshadow    时间: 2016-6-28 15:39
设置单元格格式也可以
[attach]59377[/attach]
不过这样出来的结果终究还是数值,还需要剪贴板粘贴一次才能变成真正的日期。
作者: pureshadow    时间: 2016-6-28 15:50
至于函数的解法嘛,我就不多列了……
  1. =--TEXT(A2,"0-00-00")
  2. =DATE(LEFT(A3,4),MID(A3,5,2),RIGHT(A3,2))
  3. =--(LEFT(A4,4)&"-"&MID(A4,5,2)&"-"&RIGHT(A4,2))
  4. =--REPLACE(REPLACE(A5,5,0,"-"),8,0,"-")
复制代码


作者: pureshadow    时间: 2016-6-28 15:52
最后,一个大招:数据分列(不是人格分裂,也不是性格分裂)





欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3