Столбец 1 = То, что я ввел в ячейку.
Столбец 2 = какая строка формул показывает, когда выбрана ячейка.
Столбец 3 = Что ячейка показывает, когда ячейка не выбрана.

     1    |    2      |    3
-----------------------------------
 30-07-17 | 30-07-17  | 30-07-17
 10-08-17 | 10/8/2017 | 08-10-2017
 13-08-17 | 13-08-17  | 13-08-17
 09-09-17 | 9/9/2017  | 09-09-2017

Я пытался перепечатать, я пытался изменить формат, я пытался копировать-вставить формат: ничего не работает; строки 2 и 4 всегда такие, хотя формат одинаков для всех ячеек. Что случилось ? Это ошибка в Excel?

Я нахожусь на Windows 10, используя Excel 2016.

ОБНОВЛЕНИЕ: на основе входных данных, предоставленных @ScottCraner: если строка DATE в ячейке недопустима в соответствии с локальными настройками (например, когда MM = 13 или 30), строка не будет изменена, иначе она будет отображать DATE в некотором формате (например, "DD"). -MM-YYYY "формат, который может смешивать MM & DD).
Я должен набрать его в «ММ-ДД-ГГГГ», и он будет отображаться в формате «ДД-ММ-ГГГГ», что я и хочу.

Одна часть решена, но сомнения остаются:
Когда ДАТА недействительна, почему Excel не показывает предупреждение?
Строки 2 и 4, почему "-" меняется на "/"?

ДРУГОЕ ОБНОВЛЕНИЕ:
С дополнительной информацией от @RonRosenfeld, я думаю, что проблема решена.
(1) Если строка ввода ДАТА недопустима (в соответствии с региональными настройками), ячейка будет отображаться как есть, без форматирования.
(1A) Панель формул также покажет текст как есть.
(1B) Как правило, не будет никаких уведомлений пользователю. Если пользователь хочет получать уведомления об этой ошибке, он должен использовать проверку данных.
(2) Если строка ввода ДАТА является действительной (в соответствии с региональными настройками), ячейка будет отображаться в формате, заданном пользователем.
(2A) Панель формул покажет ее в региональных настройках.
(2B) Нет способа вернуть то, что именно набрал пользователь.

Excel автоматически меняет вещи, что немного сбивает с толку!
Спасибо @ScottCraner & @RonRosenfeld!

3 ответа3

1

С информацией из @ScottCraner & @RonRosenfeld, я думаю, что проблема решена.
(1) Если строка ввода ДАТА недопустима (в соответствии с региональными настройками), ячейка будет отображаться как есть, без форматирования.
(1A) Панель формул также покажет текст как есть.
(1B) Как правило, не будет никаких уведомлений пользователю. Если пользователь хочет получать уведомления об этой ошибке, он должен использовать проверку данных.
(2) Если строка ввода ДАТА является действительной (в соответствии с региональными настройками), ячейка будет отображаться в формате, заданном пользователем.
(2A) Панель формул покажет ее в региональных настройках.
(2B) Нет способа вернуть то, что именно набрал пользователь.

Excel автоматически меняет вещи, что немного сбивает с толку!
Спасибо @ScottCraner & @RonRosenfeld!

0

Используйте формулу = TEXT(A1, "dd-mm-yyyy"). Измените ее в соответствии с вашим конкретным форматом. Вы можете очистить формат ячеек, в которых вы собираетесь использовать формулу.

0

Была такая проблема с макросами. Проблема зависит от локального var для дат.

Вы можете принудительно установить дату как эта =Day("A2")&"/"&Month("A2")&"/"&Year("A2") Это будет работать, только если вам нужны строки.

Также есть этот "странный"(для меня, по крайней мере) формат числа "m/d/yyyy", он возьмет вас в локальную переменную и выведет правильную дату. Этот работал для меня последовательно, иначе дни и месяцы будут постоянно меняться без всякой логики. Я использовал этот в VBA .range(rng).FormatNumber = "m/d/yyyy"

ура

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