在VBA中分隔日期和时间

时间:2019-03-08 05:08:40

标签: excel vba

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

2 个答案:

答案 0 :(得分:0)

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

enter image description here

因此您可以使用…

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

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


在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

答案 1 :(得分:-1)

假设您在A1单元格中的日期和时间,

在B1中使用以下公式

=--TEXT(A1,"dd/MMM/yyyy")

,并在C1中使用以下公式

=--TEXT(A1,"hh:mm:ss")

然后选择B1和C1并自定义日期和时间格式。

enter image description here