#excel #vba #variables #time
#excel #vba #переменные #время
Вопрос:
У меня есть дата и время в одной ячейке, и мне нужно извлечь десятичную дробь, которую Excel использует для времени, чтобы я мог вычесть из нее время.
Ячейка имеет это значение: 01.09.2020 7:01:21 Мне нужно получить время 7:01:21, а затем мне нужно извлечь десятичную дробь, которая ее представляет, то есть: 0,292604166666667 и сохранить ее в переменной в vba
Я много искал в Интернете, но все хотят сделать с точностью до наоборот, и я совершенно невежественен.
Спасибо за вашу помощь
Ответ №1:
Хорошо, я разобрался с этим.
Я не совсем доволен решением, но оно работает. Я уверен, что некоторые из вас, ребята, могут придумать более элегантное решение без использования переменной.
Мое это:
Dim NumericTime as Double
NumericTime = TimeValue("A1")
Debug.Print NumericTime
Комментарии:
1. Будьте довольны этим. Это решение.
2. Функция
CDbl
для преобразования в double, чтобы избежать промежуточной переменной.
Ответ №2:
Ответ №3:
Чтобы извлечь десятичную дробь, просто:
=MOD(A1,1)
Обязательно форматируйте результаты как General
или как Number
с соответствующим количеством знаков после запятой
В VBA Mod
функция не работает с десятичными числами, поэтому эквивалентом может быть:
Function DecimalTime(tm As Date) As Double
DecimalTime = tm - Int(tm)
End Function