Формат даты CSV - PullRequest
       21

Формат даты CSV

2 голосов
/ 15 октября 2008

У меня есть приложение VB, которое извлекает данные и создает 3 файла CSV (a.csv, b.csv, c.csv). Затем я использую другую электронную таблицу Excel (import.xls), чтобы импортировать все данные из вышеуказанных CSV-файлов на этот лист.

В файле import.xls есть макрос, который открывает файлы CSV один за другим и копирует данные. Проблема, с которой я сталкиваюсь, заключается в том, что даты в файлах CSV хранятся в формате мм / дд / гггг, и они копируются как есть на лист Excel. Но я хочу дату в формате дд / мм / ггг.

Когда я открываю любой из файлов CSV вручную, даты отображаются в правильном формате (мм / дд / гггг). Любая идея, как я могу решить эту проблему?

Ответы [ 4 ]

16 голосов
/ 15 октября 2008

Когда я сталкиваюсь с этой проблемой, я обычно записываю даты в виде гггг-мм-дд, которые Excel будет интерпретировать однозначно.

8 голосов
/ 15 октября 2008

Вы можете использовать функцию Формат VBA:

Format(DateText, "dd/mm/yyyy")

Это отформатирует, как вам угодно.

Для более постоянного решения попробуйте изменить региональные настройки в самих окнах, Excel использует это для форматирования даты.

Пуск -> Настройки -> Панель управления -> Региональные параметры.

Убедитесь, что язык установлен на то, что подходит, и что настройки даты соответствуют желаемым

1 голос
/ 15 октября 2008

Прежде всего, все остальные ответы хороши, но есть еще некоторая информация, которая может оказаться полезной

Файл CSV содержит только текст. То есть данные представлены не в формате даты, а в текстовом формате. Поэтому, когда вы открываете файл CSV в Excel, Excel по умолчанию интерпретирует эти данные для вас. Это не обязательно. Вы можете заставить его оставить его в виде текста, или, как отметил Марк, вы можете добавить в свой макрос импорта код, который заменит его для вас. Если вы хотите автоматизированный процесс, то это лучшее решение. Просто добавьте код в VBA в макрос, который применяет требуемый формат даты к столбцу с данными даты. В качестве альтернативы вы можете сделать это вручную после открытия файла и вставки данных, выбрав столбец самостоятельно и изменив формат. Вы можете настроить числовые форматы (выбрать пользовательские), а затем написать его самостоятельно. Например, дд / мм / гггг.

0 голосов
/ 05 ноября 2008

У меня была похожая проблема, и я решил ее следующим образом, по сути, это опция «все вышеперечисленное»

  1. С format(date,'dd-mmm-yyyy') преобразовать дату в формат 2-3-4 например, 01.01.08, компьютер ошибки 01 августа для 08 января: -)
  2. С копированием в Excel автоматически возвращается к формат даты / времени, конвертируем результат в строку с помощью cstr на функция в 1
  3. Форматирование ячеек, в которых дата копируется как текст (если вы не как ни крути, это будет преобразовать его обратно в дату / время снова
  4. Сохраните лист как CSV-файл и откройте в блокноте, чтобы подтвердить работал

Некоторые люди могут сказать, что это излишне, но лучше быть в безопасности, чем когда пользователь звонит мне через год и говорит, что с датой

что-то странное
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...