我尝试使用一个文本字符串,其中包含一个带有.
小数分隔符和两个小数位的数字,与用户拥有的 Excel 的语言环境无关。
当它只是英文时,=TEXT(A1, "0.00")
工作正常,并且1.00
在我1
用A1写的时候给出。但是,当我在 Excel 设置为德语的本地 PC 上打开它时,出现错误#VALUE!
。
任何使其独立于 Excel 设置的语言的方法,因为有来自不同国家和公司的多人在工作/查看相同的 Excel 文件。
我不能使用 VBA。
我尝试使用一个文本字符串,其中包含一个带有.
小数分隔符和两个小数位的数字,与用户拥有的 Excel 的语言环境无关。
当它只是英文时,=TEXT(A1, "0.00")
工作正常,并且1.00
在我1
用A1写的时候给出。但是,当我在 Excel 设置为德语的本地 PC 上打开它时,出现错误#VALUE!
。
任何使其独立于 Excel 设置的语言的方法,因为有来自不同国家和公司的多人在工作/查看相同的 Excel 文件。
我不能使用 VBA。
由于没有 VBA 可能无法实现与本地无关的格式设置,因此您可以调整您的 Excel 代码以成为多语言环境。
这个想法是对 将根据系统语言更改的值使用VLOOKUP 。
下面的示例将使用 1 月份的本地名称来将语言环境标识为英语或德语以格式化日期字段:
在英语中,月份称为“January”,但在德语中称为“Januar”。
我们对下面的参数数组进行 VLOOKUP 以获得正确的格式字符串:
您还可以将区域设置的正确格式字符串存储在单元格中,并在此数据类型的所有 TEXT 函数中使用此值,而不是在每个函数上重复 VLOOKUP 调用。
(此答案基于 Excel 中的 StackOverflow 后 Locale-independent Text 函数。)
您可以使用 VBA 和数字格式文本字符串的命名引用来执行此操作。
然后,我们根据用户的区域设置更改该命名引用以对应于所需的格式字符串。
在您的美国版本中,
Formulas => Define Name
_2Dec
对于名称和"0.00"
对于RefersTo
=TEXT(A!,_2Dec)
Alt-F11
打开 VB 编辑器ThisWorkbook
并选择View Code
将下面的代码粘贴到打开的窗口中
我知道
RefersTo
所有这些双引号的参数看起来很奇怪,但它们是必需的,因为引号是 RefersTo 参数的一部分。代码在工作簿打开时运行,并根据用户计算机上使用的小数分隔符更改引用。