Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2010, 21:44   #1
Aent
Форумчанин
 
Аватар для Aent
 
Регистрация: 17.07.2009
Сообщений: 519
По умолчанию Конверсия даты в Excel и VBA

Конвертируя текстовый файл с датами начала прошлого века, наткнулся на милейший прикол:
Устанавливаем для ячейки A1 формат даты.
Например : [A1].NumberFormat = "m/d/yyyy"
Вводим на листе в эту ячейку, например, 37.
"Умный" Excel при вводе (до события Worksheet_Change) конвертирует
число 37 в дату 06.02.1900
Переходим в VBE и в окошке Immediate набираем ?[a1]
Видим: 05.02.1900
И действительно:
?CDate(37) = 05.02.1900
?Cdbl(#02/05.1900#) = 37
Но Excel считает по другому. Такая вот конверсия ....
Разница возникает из за того что VBA полагает что первый день это 31.12.1899 Cdate(1)
Соответственно 01.01.1900 это 2. А для EXCEL первый день это как раз 01.01.1900
Ещё более радостным всё становится если в Сервис->Параметры...->Вычисления поднят чекбокс "система дат 1904"
Тогда 1 будет восприниматься EXCEL как 02.01.1904
Эксперимент показал, что CALC из OpenOffice.Org 3.1 при вводе в ячейку 1 конвертирует её в 31.12.1899.
Так же не может не радовать что EXCEL считает 1900 год високосным.

Последний раз редактировалось Aent; 12.02.2010 в 22:33.
Aent вне форума Ответить с цитированием
Старый 15.02.2010, 09:41   #2
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Спасибо за наблюдения! Возьму на заметку
Maxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Word,VBA Excel решить 2 задачи fafolo4ka Фриланс 6 05.03.2012 01:15
неверное преобразование даты при открытии DBF файла в MS Excel 2007 Serge_Bliznykov Microsoft Office Excel 13 26.11.2009 09:37
Использование полной даты Autofilter в VBA alpeen Microsoft Office Excel 2 27.05.2009 16:18
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 kovalevskivf Microsoft Office Excel 2 15.05.2009 16:47
Как сделать отсчет дней от заданной даты в Excel? ru16 Microsoft Office Excel 1 22.11.2007 11:13