如何将VBA TextBox格式化为长日期

时间:2012-11-16 16:36:52

标签: vba excel-vba excel

我有一个日期显示文本框,以这种格式显示日期:17/04/2012但我想将其格式化为“2012年4月17日”。我试过这段代码

UserForm1.txtDate = Format(Long Date)

我从编译器得到语法错误。你能告诉我怎么做吗? 感谢

1 个答案:

答案 0 :(得分:2)

这里有几个帖子。罪魁祸首似乎是你的系统日期格式。使用短,中,长格式将在系统设置更改时更改结果。

  • 在美国系统中,主要是作为例如Format$(yourdate, “dd/mm/yyyy”)
  • 欧洲系统,例如Format$(yourdate, “short date”)

如果我们看一下明确定义您的格式,那么您正在制定区域设置!

例如。短日期不会总是mm / dd / yyyy,但可能是dd / mm / yyyy。这是实际指定格式的关键优势。您只需改变日期的样子,而不是依赖于系统(无论您是否知情)。

当我们第一次遇到这个时,我们有一些制作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") 

希望有所帮助。