У меня проблема с форматированием даты и TextToColumns. Несмотря на то, что я похож на некоторые другие темы, я не смог сопоставить их напрямую с моей проблемой.
Справочная информация: у меня есть повторяющийся относительно большой файл * .csv, который включает три столбца отметок даты / времени. В настоящее время это текст в виде «ДД / ММ / ГГГГ чч: мм». По умолчанию у меня компьютер D / M / Y. Если я вручную использую функцию «Текст в столбцы» в Excel (с разделителями, разделители не выбраны, формат данных столбцов Дата: DMY), тогда преобразование происходит правильно.
Ошибка: пытаясь автоматизировать преобразование в VBA, я записал макрос в качестве отправной точки, а затем пошел оттуда. Как только я закончил писать рутину, я запустил ее и увидел, что она сделала только половину дат. Дальнейшее расследование показало, что оно только изменило даты, которые могли быть в любом случае ... то есть день не превышал 12 числа. Затем я понял, что происходит то, что код работает только тогда, когда он может интерпретировать дату в формате MDY. Это означает, что на самом деле возникла ошибка, поскольку даты, такие как 05/02/2010 (5 февраля 2010 г.), затем появились как 02/05/2010 (2 мая 2010 г.).
Ключевая часть кода выглядит следующим образом:
Range("SCDB").Columns(aryColTitleIndex(i)).TextToColumns _
Destination:=Range("SCDB").Columns(aryColTitleIndex(i)), _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, xlDMYFormat), _
TrailingMinusNumbers:=True
(Именованные диапазоны и индексы столбцов работают нормально). Я пробовал FieldInfo: = Array (1, 4) так же, как показано выше, но без изменений. По сути, похоже, что VBA хочет работать в MYD, а Excel - в DMY.
Есть идеи? Спасибо