2015-02-25 5 views
2

Есть ли способ определить текущую культуру системы с помощью формулы в Excel с использованием кода VBA?Получить текущую культуру, используя только формулу для цели локализации

Я представляю себе что-то простое, как это:

IF(CULTURE="sk-SK","Prehľad","Overview") 

или же что-то, как это будет делать для меня:

IF(CURRENCYSIGN="€","Prehľad","Overview") 

Ищу простой способ Globalize XLSX файл без каких-либо дополнительных ресурсов или файлов.

+0

У меня есть идея, но не может проверить это, как мне нужно для него - английская версия Excel. Есть ли у вас чешский Excel 2013? – Taosique

+1

Попробуйте написать '= DNES()' в 'A1' и' = FORMULATEXT (A1) 'в' A2'. Что вы получаете? – Taosique

+0

Да, отлично, я получаю '= DNES()'. –

ответ

2

Нет, невозможно установить системные языковые настройки без 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]) 
Смежные вопросы