
Эксель 2007.
Мне нужен макрос, который поместит сегодняшнюю дату в текущую ячейку в формате дд-ммм-гг, например, 30-окт-14.
У меня простой код:
'ActiveCell.Value = Format(Now(), "dd-mmm-yy")'
По какой-то причине возвращается «30 октября 14 г.» с пробелами вместо дефисов.
Похожие форматы работают правильно. например
dd-mm-yy дает 30-10-14,
dd~mmm~yy дает 30~Oct~14
Фактическое значение ячейки установлено на "10 30 2014"
Может ли кто-нибудь дать мне простое решение и, если возможно, объяснить, почему это происходит?
решение1
Excel автоматически преобразует текст, введенный вами с помощью макроса, в дату (а затем применяет формат даты). Чтобы заставить Excel просмотреть его как текст, добавьте одинарную кавычку к строке даты:
ActiveCell.Value = "'" + Format(Now(), "dd-mmm-yy")
Либо сначала установите формат ячейки как текстовый:
ActiveCell.NumberFormat = "@"
ActiveCell.Value = Format(Now(), "dd-mmm-yy")