Я пытаюсь создать дату в VBA. Хочу, чтобы она отображалась как 13.04.2018 для сегодняшней даты.
Однако в настоящее время я могу отобразить только дату 13.4.2018.
Как добавить ноль перед днями и месяцами, состоящими из одной цифры?
На данный момент мне предстоит:
stDateDay = Day(Date)
stDateMonth = Month(Date)
stDateYear = Year(Date)
stDateFull = stDateDay & "." & stDateMonth & "." & stDateYear
решение1
Для форматирования даты (или любого другого значения) в VBA можно использовать функцию Format
. Например:
strDateFull = Format(Date, "dd.mm.yyyy")
Вторым параметром является строка формата, которая может быть либо предопределенным именем формата ( General Date
, Long Date
, Medium Date
или Short Date
), либо спецификатором формата, включающим такие символы, как dd
, mm
или yy
.
Полный список символов смотрите в документации:https://msdn.microsoft.com/en-us/VBA/language-reference-vba/articles/format-function-visual-basic-for-applications
решение2
Вы можете просто попробовать это:
Range("A1").Value = Format(StDateFull, "dd.mm.yyyy")
Или вы также можете отформатировать ячейку или диапазон ячеек перед передачей им значения StDateFull, например:
Range("A1").NumberFormat = "dd.mm.yyyy"
Range("A:C").Select
Format$ ("dd.mm.yyyy")
Range("A1").value = stDateFull