Мы находимся в стандартизированной среде Citrix / Windows 2008R2 с региональными настройками, установленными на голландский язык для всех пользователей и на английском языке Excel 2010 для всех пользователей. Тем не менее поведение функции TEXT при форматировании дат зависит от пользователя.

Форматирование даты на английском и голландском языках различается только по году (день и месяц - "d" и "m" на обоих языках). Как и ожидалось, с нашими региональными настройками в Нидерландах "jjjj" - это код форматирования для отображения года. Для большинства пользователей это работает нормально: = TEXT (TODAY (); "dd/mm/jjjj") отображает "03/05/2017".

Однако, когда некоторые пользователи открывают лист, содержащий эту текстовую функцию, они получают «03/05/jjjj», как будто их региональные настройки установлены на английский язык. Но когда я проверяю их региональные настройки, они устанавливаются на голландский, как и ожидалось. Также я не могу обнаружить какие-либо другие настройки, связанные с языком или локалью, которые отличаются для этих пользователей.

Теперь я думал, что «Региональные настройки» были единственным определяющим фактором в поведении строки форматирования в функции TEXT. Но, видимо, их больше, и они зависят от пользователя, т.е. хранятся в HKCU. Кроме того, поскольку мои пользователи, кажется, могут изменять их невольно, эти дополнительные параметры доступны через пользовательский интерфейс.

Где, кроме региональных настроек, определяется поведение форматирования даты в функции ТЕКСТ?

1 ответ1

0

На ум приходят две вещи:

1) Вместо этого вы можете просто ввести дату и отформатировать эту конкретную ячейку / диапазон в "короткую дату".

2) Если вы не против использования VBA, вы можете запустить подпрограмму из события Workbook_Open() которое форматирует ячейку. VBA использует английский независимо, поэтому:

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

будет работать независимо от региональных настроек клиента.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .