Чтобы преобразовать одну строку DateTime в 2 отдельных строк:
Public Sub splitDateTime()
Dim d As String, t As String
d = DateValue("2/15/2011 2:00:00 AM")
t = TimeValue("2/15/2011 2:00:00 AM")
MsgBox d '"2/15/2011" (result format varies based on Regional Settings)
MsgBox t '"2:00:00 AM"
End Sub
Чтобы преобразовать все ячейки в колонке, содержащей строки DataTime в 2 колонки, для заголовков, за исключением:
Option Explicit
Public Sub splitDateTime()
Dim str As String, cel As Range, ws As Worksheet, lr As Long
Set ws = ActiveSheet
lr = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For Each cel In ws.Range("C1:C" & lr)
If cel.Row = 1 Then
With cel
.Value2 = "Date"
.Offset(0, 1).Value2 = "Time"
End With
Else
str = cel.Value2
With cel
.Value2 = Format(DateValue(str), "ddd, mmm dd yyyy")
.Offset(0, 1).Value2 = Format(TimeValue(str), "hh:mm:ss AmPm")
End With
End If
Next
ws.Range("C1:D" & lr).EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub
Вот мой код и он все еще дает ошибку несоответствия типа. – Jlee
Option Explicit Sub splitDateTime() Dim cvalue Dim curr_date As String Столбцы ("C"). Выберите cvalue = Столбцы ("C"). Value curr_date = DateValue (cvalue) MsgBox curr_date End Sub – Jlee
Предоставляемый код должен показать вам пример того, как это сделать. Пожалуйста, отредактируйте свой вопрос, чтобы быть более конкретным, например «Мне нужно разделить все ячейки в столбце C от полного формата даты и времени на значение даты, чтобы оставаться в каждой ячейке в столбце C и времени в соответствующей ячейке в столбце D» –