Я нахожу странное несоответствие при копировании-вставке дат в MS Excel, когда они имеют двухзначный год. Я работаю на машине с Windows 7 Enterprise 64 bit и мой Excel версии 2010 года.
ОПИСАНИЕ ПРОБЛЕМЫ: если я напишу краткую дату в каком-либо приложении (скажем, в блокноте) и скопирую ее в Excel, год после 2029 года будет неверно истолкован. Примеры:
- Я пишу «01.12.29» в Блокноте и копирую и вставляю это значение в MS Excel: дата будет интерпретирована как «01.12.2029».
- Я пишу «01.12.31» в Блокноте и копирую и вставляю это значение в MS Excel: дата будет интерпретироваться как «01.12.1931» (вместо «01.12.1931»).
ИССЛЕДОВАНИЕ 1 - панель управления: после первого исследования я обнаружил параметр в конфигурации «Панель управления / даты», в котором говорится, что «если год будет вставлен с двумя цифрами, он будет включен в период между 1997 и 2096 годами». Изображение ниже (это на французском, мой системный язык, но содержание - то, которое я описал):
Однако, даже если этот параметр заставит меня ожидать правильного преобразования тестового примера выше, это не так.
ДАЛЬНЕЙШЕЕ ИССЛЕДОВАНИЕ - VBA: VBA обычно наследует настройки хост-приложения (в моем случае MS Excel), которое наследует настройки системы. Например, если системный язык - французский, это означает, что месяц "декабрь" записывается как "декабрь". Итак, если я напишу это, оно будет работать: myDate = DateValue("11-déc-12")
, а если я напишу это, оно не будет работать: myDate = DateValue("11-dec-12")
. Это очевидно, потому что VBA наследует системный язык, поэтому он распознает "декабрь" (французский), а не "декабрь" (английский).
Однако, если я напишу это:
myDate = DateValue("12/01/31")
значение будет правильно интерпретировано как 12/01/2031
.
ПОИСК ДАЛЬНЕЙШЕГО: ввод вручную «12/01/31» в ячейке Excel будет правильно преобразован в 2031. Так что, похоже, проблема возникает только при копировании и вставке.
МОЙ ВОПРОС: Кажется, есть несоответствие между настройками. Может ли кто-нибудь привести меня в нужное место, чтобы однажды навсегда решить эту проблему, и убедиться, что параметр «если год вставлен из 2 цифр, будет между XXXX и YYYY», пожалуйста? Заранее спасибо, не стесняйтесь спрашивать более подробную информацию, если это необходимо.