Пытаюсь преобразовать метки времени, указанные в секундах после первого января 1970 года. Я написал небольшую функцию в Excel VBA для преобразования в формат даты Excel. Это прекрасно работает в том смысле, что оно преобразуется в число, которое при правильном форматировании дает метку времени в понятной форме, но мне приходится каждый раз форматировать вызовы вручную. Я пытался решить эту проблему несколькими способами, но либо это ничего не делает с числом, либо приводит к ошибке: "#VALUE."
Функция называется Sec2TS
, и если я использую: 1502569847
в качестве входных данных, она возвращает: 42959.8547106481
, что является правильно, но хотелось бы видеть: 2017 Aug 12 20:30:47
. Я добавил код:
Function Sec2TS(Secs As Double) As Date
If Secs > 0 Then
Sec2TS = 25569 + (Secs / 86400)
Else
Sec2TS = 0
End If
ActiveCell.NumberFormat = "yyyy mmm dd hh:mm:ss"
End Function
Что с этим не так? Я пытался установить диапазон для выбора и переключения приложений, но безрезультатно.