仅使用用于本地化目的的公式获取当前文化
Get current culture using just formula for localization purpose
有没有一种方法可以使用 Excel 中的公式来确定当前的系统文化,而无需使用任何 VBA 代码?
我想像这样简单的事情:
IF(CULTURE="sk-SK","Prehľad","Overview")
或者这样的事情对我有用:
IF(CURRENCYSIGN="€","Prehľad","Overview")
我正在寻找一种无需任何额外资源或文件即可全球化 XLSX 文件的简单方法。
不,没有 VBA 就无法获取系统语言设置。根本没有内置函数。但是如果你考虑UDF,有一个解决方案:
Public Function GetLang()
GetLang = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
End Function
不过,在您的帮助下,我们找到了一个窍门。可以通过分析公式文本来猜测系统语言(仅限Excel 2013年):
A1=TODAY()
=IF(FORMULATEXT(A1)="=TODAY()",[some logic for English system],[some logic for non-English system])
或通过分析本地月份名称:
=IF(TEXT(1,"mmmm")="January",[some logic for English system],[some logic for non-English system])
有没有一种方法可以使用 Excel 中的公式来确定当前的系统文化,而无需使用任何 VBA 代码?
我想像这样简单的事情:
IF(CULTURE="sk-SK","Prehľad","Overview")
或者这样的事情对我有用:
IF(CURRENCYSIGN="€","Prehľad","Overview")
我正在寻找一种无需任何额外资源或文件即可全球化 XLSX 文件的简单方法。
不,没有 VBA 就无法获取系统语言设置。根本没有内置函数。但是如果你考虑UDF,有一个解决方案:
Public Function GetLang()
GetLang = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
End Function
不过,在您的帮助下,我们找到了一个窍门。可以通过分析公式文本来猜测系统语言(仅限Excel 2013年):
A1=TODAY()
=IF(FORMULATEXT(A1)="=TODAY()",[some logic for English system],[some logic for non-English system])
或通过分析本地月份名称:
=IF(TEXT(1,"mmmm")="January",[some logic for English system],[some logic for non-English system])