Фон:
Я хочу получить 5-значную дату из ячейки, отформатированной для отображения даты. Дата из 5 цифр должна быть только непосредственным окном (через debug.print
).
Мое тестирование с результатами в разделе Script (внизу).
У меня естьощущение, что ответ будет включать datediff()+2
на основании проведенного мною тестирования, но я не могу понять, зачем нужен этот +2, и не хочу просто добавить это, если в будущем это не так.
Проблема:
Кажется, я не могу отобразить правильную пятизначную дату (как отображается в «общем» формате) с помощью Debug.Print
.
Вопрос:
Как получить 5-значную дату, чаще всего отображаемую с общим форматированием, для отображения в ближайшем окне (debug.print
) без предварительного преобразования ячейки .numberformat
?
Сценарий:
Dim rng As Range, d1 As String, d2 As String
Set rng = Cells(1, 1) 'value = 20190101
Debug.Print Format(rng.Value, "@") 'returns 20190101
Debug.Print rng.NumberFormat = "General" 'returns "false"
Debug.Print Format(rng.value, "General") 'returns "Ge0oral" due to the "n" being recognized for a format
d1 = "1900/01/01"
d2 = rng.Value
Debug.Print 40729 + DateDiff("d", d1, d2) 'returns 84195
Debug.Print DateDiff("d", d1, d2) 'returns 43466
rng.NumberFormat = "General"
Debug.Print rng.Value 'returns 43468, but required formatting the cell