0

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

UserForm1.txtDate = Format(Long Date)

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

4

1 回答 1

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") 

希望有帮助。

于 2012-11-16T17:33:20.820 回答