Excel TEXT 函数:用户相关的日期格式行为

Excel TEXT 函数:用户相关的日期格式行为

我们使用的是标准化的 Citrix / Windows 2008R2 环境,所有用户的区域设置均设为荷兰语,所有用户的区域设置均设为英语 Excel 2010。然而,TEXT 函数在格式化日期时的行为取决于用户。

英语和荷兰语的日期格式仅在年份上有所不同(两种语言中的日期和月份均为“d”和“m”)。正如预期的那样,在我们的荷兰区域设置中,“jjjj”是显示年份的格式代码。对于大多数用户来说,这很好用:=TEXT(TODAY(); “dd/mm/jjjj”) 显示“03/05/2017”。

但是,当某些用户打开包含此文本函数的工作表时,他们会看到“03/05/jjjj”,就好像他们的区域设置设置为英语一样。但是当我检查他们的区域设置时,他们被设置为荷兰语,正如预期的那样。我也没有发现这些用户有任何其他不同的语言或区域设置相关设置。

现在我认为区域设置是 TEXT 函数中格式化字符串行为的唯一决定因素。但显然,还有更多,并且这些是用户相关的,即存储在 HKCU 中。此外,由于我的用户似乎能够在不知不觉中更改它们,因此可以通过 UI 访问这些附加设置。

除了“区域设置”之外,还有哪里可以确定 TEXT 函数中的日期格式行为?

答案1

我想到的是两件事:

1)您可以简单地输入日期并将特定单元格/范围格式化为“短日期”格式。

2) 如果您不反对使用一些 VBA,则可以从Workbook_Open()格式化单元格的事件中运行子程序。无论如何,VBA 都使用英语,因此:

Sheets("Foo").Range("A1").NumberFormat = "dd/mm/yyyy"

无论客户端的区域设置如何,都可以工作。

相关内容