【问题标题】:Excel VBA : Convert date format from YYYY-MM-DD-HH.MM.SS.Milli to DD/MM/YYYY HH:MM:SSExcel VBA:将日期格式从 YYYY-MM-DD-HH.MM.SS.Milli 转换为 DD/MM/YYYY HH:MM:SS
【发布时间】:2016-11-06 18:20:09
【问题描述】:

我有以下日期时间转换成格式DD/MM/YYYY HH:MM:SS

细胞类型:一般

2011-01-29-10.23.23.123100

我的尝试:

功能:

Function ConvertDate(D1 As Date) As Long

 ConvertDate = Substitute(Substitute(Substitute(D1, "/", " ", 3), ".", ":", 1), ".", ":", 1) * 1

End Function

结果:

#VALUE!

无法获得预期结果。

【问题讨论】:

  • 尝试使用 Function ConvertDate(D1 As string) As Date 和 ConvertDate = CDate(Left(D1, 10) & " " & Replace(Mid(D1, 12, 8), ".", ":")) 并按照您的需要格式化输出...
  • @DirkReichel,完美!做得很好。
  • @DirkReichel,我可以在函数的 ConvertDate 末尾连接字符串“时间”吗?
  • @DirkReichel,我尝试使用ConvertDate = ConvertDate & "Time",但没有得到预期的结果。
  • 如果你在这个任务中使用字符串操作,你很可能做错了。

标签: excel vba date datetime


【解决方案1】:

使用,

=--LEFT(REPLACE(SUBSTITUTE(A1, ".", ":"), 11, 1, CHAR(32)), 20)

(或 VBA 等效项)。格式化(或设置Range.NumberFormat property)为DD/MM/YYYY HH:MM:SS。

      
           请注意,A1 是左对齐的(即 text )而 B1 是右对齐的(即真正的 number 或 日期)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多