首页 > 解决方案 > 在 VBA 中分隔日期和时间

问题描述

在我的数据中,日期时间格式15-02-2019 19:56位于单列中。我想将日期和时间分开列。

标签: excelvba

解决方案


请注意,当使用日期/日期时间时,Excel在单元格中显示的内容并不是 Excel 在单元格中实际保存为值的内容。Excel 为该日期保存的值实际上43511,83056是自1900-01-01. 所以时间是一天的一部分,因此由该值的逗号后面的部分表示。

在此处输入图像描述

所以你可以使用……</p>

  • =INT(B1)仅获取日期(并将单元格格式化为日期)
  • =B1-INT(B1)只获取时间(并将单元格格式化为时间)

=B1或者只使用与 B 列(在 C 和 D 中)相同的值,并将一个格式化为日期,一个格式化为时间。


在 VBA 中,您可以使用相同的技术:

Option Explicit

Public Sub SplitDateAndTime()
    Dim MyDateTime As Date
    MyDateTime = Range("B1").Value

    'get date
    Range("C1").Value = Int(MyDateTime)
    Range("C1").NumberFormat = "YYYY-MM-DD"

    'get time
    Range("D1").Value = MyDateTime - Int(MyDateTime)
    Range("D1").NumberFormat = "hh:mm:ss"
End Sub

推荐阅读