如何更改格式化日期的区域设置?

时间:2013-06-05 08:04:00

标签: vba locale date-format

我想以英文月份名称的特定格式检索今天的日期。

我正在使用 Format(DateValue(Now), "dd-mmm-yyyy"), 这给了我 05-cze-2013, 这是波兰语。我想得到的是 05-Jan-2013

我只对VBA解决方案感兴趣。还请提供一种方法,使用VBA将语言环境设置回原始语言。

2 个答案:

答案 0 :(得分:8)

这不是很难......

Sub VBA_Dates_Format()
    Cells.Clear
    Range("A1").Value = Now
    Range("A2").Value = Now
    ' Polish
    Range("A1").NumberFormat = "[$-415]d mmm yy;@"
    ' English UK
    Range("A2").NumberFormat = "[$-809]d mmm yy;@"
End Sub

我通过录制和修改宏以符合标准来实现这一目标。


Further reading available here

答案 1 :(得分:0)

它不是干净的VBA,但它是一种在字符串中获取本地化格式化日期的方法。格式化功能无法做到的事情。

With Range("$A$1")
    .NumberFormat = "[$-809]dd mmmm"
    .FormulaR1C1 = "=NOW()"
    tmp = .Text
    .NumberFormat = "@"
    .Value = CStr(tmp)
End With

有关本地化格式的更多信息我很好回答来自Ian Boyd的https://stackoverflow.com/a/899290