Обратите внимание, что при использовании даты / даты-времени то, что Excel показывает в ячейке, не является тем, что Excel сохраняет как значение в ячейке.Значение, которое Excel сохраняет для этой даты, на самом деле составляет 43511,83056
, то есть число дней с 1900-01-01
.Таким образом, время является частью одного дня и, следовательно, представляется частью после запятой этого значения.

Так что вы можете использовать ...
=INT(B1)
, чтобы получить только дату (и отформатировать ячейку как дату) =B1-INT(B1)
, чтобы получить только время (и отформатировать ячейку как время)
Или просто используйте то же значение, что и в столбце B (=B1
в 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