Как отформатировать текстовое поле VBA в длинную дату

У меня есть текстовое поле для отображения даты, которое показывает дату в следующем формате: 17/04/2012, но я хотел бы отформатировать ее так, чтобы она отображалась как '17 апреля 2012 г., Я пробовал этот код

UserForm1.txtDate = Format(Long Date)

который я получаю синтаксическую ошибку от компилятора. Можете ли вы дать мне знать, как я могу это сделать? Спасибо

 Fionnuala16 нояб. 2012 г., 18:16
Плохая пометка Это Excel, а не Access.
 bonCodigo17 нояб. 2012 г., 06:17
Просто нашел еще один несколько связанный товарсообщение Это'больше внимания уделяется выбору даты, текстовым полям, форматированию дат. Мне лично нравится широкая перспектива темы.
 Zaider16 нояб. 2012 г., 17:54
Если он'При использовании пользовательской формы Excel текстовое поле не имеет свойства формата, которое я вижу.UserForm1.txtDate = Format(UserForm1.txtDate.Value, "Long Date")

Ответы на вопрос(1)

Решение Вопроса

кажется, ваш системный формат даты. Использование коротких, средних и длинных форматов изменит результат при изменении настроек системы.

В системах США в основном этосделано как, напримерFormat$(yourdate, “dd/mm/yyyy”)Где, как в европейских системах, напримерFormat$(yourdate, “short date”)

Если мы посмотрим на явное определение вашего формата, вы формулируете свои региональные настройки!

Хорошонапример короткое свидание выиграноt всегда должно быть мм / дд / гггг, но может быть дд / мм / гггг. Тот's ключевое преимущество перед фактическим указанием формата. Просто вы можете изменить то, как вы хотите, чтобы ваша дата выглядела, а не в зависимости от системы (с вашим знанием или без него).

Когда мы впервые столкнулись с этим, у нас было несколько приложений VBA и их отправка другому в другом месте, где у них есть собственный локализованный системный формат даты. Ваш телефон звонит ...;)

Короткая / длинная дата: отображение даты в соответствии с вашей системойдлинный формат даты.Средняя дата: отображение даты в формате средней даты, соответствующем языковой версии основного приложения.

В вашем случае вы могли бы использовать,

UserForm1.txtDate.Value = Format$(Date,"mmmm dd, yyyy")

Или быть супер-безопасным,

Dim dtDate as Date
    dtDate = DateSerial(Year(Date), Month(Date), Day(Date)) 
    UserForm1.txtDate.Value = Format$(dtDate, "mmmm dd, yyyy") 

Надеюсь, это поможет.

Рекомендации
 bonCodigo16 нояб. 2012 г., 19:35
Привет, Брэд, спасибо - большая опечатка! :) это действительно dtDate вместо txtDate

Ваш ответ на вопрос