Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/преобразование даты в числовой формат в диапазоне без цикла - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
преобразование даты в числовой формат в диапазоне без цикла
krosav4ig Дата: Среда, 29.10.2014, 00:12 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Здравствуйте. Помогите пожалуйста с разобраться с проблемой. Написал процедуру сортировки больших массивов через arraylist. Работает, сортирует, скорость вроде неплохая (1048576 элементов менее, чем за минуту :o ), но возникла проблема при выгрузке дат на лист. Выгружаются они в текстовом формате, чтобы получить числовой формат я заменяю точки на / (в 320 строке), но после замены оказывается, что день и месяц меняются местами, и некоторые даты (те, в которых перед первой точкой число более 12) остались текстом. Заменяю вручную через - все заменяется и получаются правильные даты. Помогите разобраться в причинах такого поведения. В принципе если 140 строку заменить на[vba]
Код
ALD.Add cell.Formula
[/vba] и 320 на[vba]
Код
.Numberformat = "dd.mm.yyyy"
[/vba] то все работает правильно, но я хочу понять почему не получается сделать это заменой. Спасибо
К сообщению приложен файл: ArrayListSort1.xlsb (26.7 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Среда, 29.10.2014, 00:15
 
Ответить
СообщениеЗдравствуйте. Помогите пожалуйста с разобраться с проблемой. Написал процедуру сортировки больших массивов через arraylist. Работает, сортирует, скорость вроде неплохая (1048576 элементов менее, чем за минуту :o ), но возникла проблема при выгрузке дат на лист. Выгружаются они в текстовом формате, чтобы получить числовой формат я заменяю точки на / (в 320 строке), но после замены оказывается, что день и месяц меняются местами, и некоторые даты (те, в которых перед первой точкой число более 12) остались текстом. Заменяю вручную через - все заменяется и получаются правильные даты. Помогите разобраться в причинах такого поведения. В принципе если 140 строку заменить на[vba]
Код
ALD.Add cell.Formula
[/vba] и 320 на[vba]
Код
.Numberformat = "dd.mm.yyyy"
[/vba] то все работает правильно, но я хочу понять почему не получается сделать это заменой. Спасибо

Автор - krosav4ig
Дата добавления - 29.10.2014 в 00:12
_Boroda_ Дата: Среда, 29.10.2014, 07:14 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16691
Репутация: 6491 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тоже часто забываю про эту засаду и пытаюсь что-то подобное сделать. Я так понял, что при подобном преобразовании автоматически вставляется формат дат, который по умолчанию не в Excel, а в VBA - не ДД.ММ, а MM.DD. Я такую логику не очень приемлю как-то, но логически понять можно - мы же преобразуем числа из VBA, вот и вставляется VBA-шный умолчательный формат.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТоже часто забываю про эту засаду и пытаюсь что-то подобное сделать. Я так понял, что при подобном преобразовании автоматически вставляется формат дат, который по умолчанию не в Excel, а в VBA - не ДД.ММ, а MM.DD. Я такую логику не очень приемлю как-то, но логически понять можно - мы же преобразуем числа из VBA, вот и вставляется VBA-шный умолчательный формат.

Автор - _Boroda_
Дата добавления - 29.10.2014 в 07:14
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!