2017-02-10 4 views
2

У меня есть макрос, который ежедневно пишет электронное письмо. Для заголовка электронной почты, макро форматов ввод даты найденного в конкретной ячейке, например:VBA: Формат даты до стандарта США

Period = ThisWorkbook.Sheets("aux").Cells(2, 1) 
MsgBCC = "" 
MsgFrom = "----Specific email address here----" 
MsgSub = "Daily Update (" & Format(Period, "dd/mmm") & ")" 
Msg = "<html><body><font color=#303030 size=""3"" face=""Trebuchet MS"">" 

Дело: Я хочу, чтобы изменить форматирование даты, так что отображает название месяца на английском языке (который не является языком по умолчанию для моего компьютера). Я хочу, чтобы дата имела формат «dd/mm», например, «10/Feb» для 10 февраля.

Я могу изменить форматирование даты на английский язык, используя формат «Пользовательский» на листе. «Координаты» желаемого формата - [$-409]mmm/aa;@. Они Excel генерируются, например:

enter image description here

Когда я пытаюсь использовать этот формат в функции VBA Format, однако, выход дата не меняется.

Любые идеи о том, как изменить формат даты?

+2

Application.Text (дата(), "[$ - 40e] дддд") украдено из https://sites.google.com/site/e90e50fx/home/ Месяц-день-имена-с-Excel-формула –

+0

Ницца, приятель! – MBBertolucci

+1

Я думаю, что вам просто нужно «Period.Value' или' Period.Text', поскольку вы пытались отформатировать объект «Range», когда то, что вы действительно хотели, было его значением! Итак, 'Format (Period.Value," dd/mm ")' – Wolfie

ответ