Vba double to time

У меня есть пользовательская форма VBA, которая, когда я нажимаю сохранить после ввода данных, она записывает в электронную таблицу и устанавливает мое время и дату на Now (), которая записывается в электронную таблицу, где я разделяю значение now () на время и дату , когда я перечитываю его, я получаю дату, но мое время в десятичном формате. Я хотел бы преобразовать это десятичное число обратно во время. Какова формула для этого, спасибо заранее, мое десятичное число - это что-то вроде «0,12425576899», пока я нашел это, но он преобразует это в '00: минуты на двойном: 00 'вот код

Public Function FromDecimalTime(ByVal t As Double) As Date
FromDecimalTime = TimeSerial(0, Fix(t), (t - Fix(t)) * 60)
End Function

Это немного сложно понять без знаков препинания, но Date в VBA - это просто «украшенный» Double. Я догадываюсь? вы просто ищете CDate(t).

Comintern 31.10.2018 13:41
1
1
4 020
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Следующее преобразует Double в формат Date. Чтобы показать только временную часть формата даты, используйте функцию Format:

Sub trythis()
Dim t As Double
t = Now()
Debug.Print CDate(t)
Debug.Print Format(t, "hh:mm:ss")

End Sub

Другие вопросы по теме