Функция Excel TEXT: пользовательское поведение форматирования даты


0

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

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

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

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

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


Помимо региональных настроек, языковые настройки Office также могут влиять на язык функций. Вы их сравнивали?
Máté Juhász

Да, Мате, хорошая мысль. Я проверяю это с моим пользователем на следующей неделе. Я думаю, что мы заблокировали их через GPO.
FMK

Ответы:


0

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

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

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

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

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


Спасибо, Макро Человек. Я на самом деле создал другой обходной путь: =TEXT(TODAY();"dd-mm-")&YEAR(TODAY()), Тем не менее, я ищу объяснение и исправление основной причины. Это не должно происходить вообще в нашей стандартизированной среде.
FMK

К сожалению, строка формата также зависит от языка.
Tamas Hegedus
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.