VBA — при копировании даты из excel в csv цифры даты и месяца меняются местами

#vba #date

Вопрос:

ниже приведены мои коды VBA, он просто копирует даты и значения из excel в CSV и закрывает CSV после сохранения. Проблема в том, что когда я повторно открываю CSV, места дня и месяца меняются местами. Что-то происходит после сохранения файла.

 Workbooks(wb).Worksheets("values").Range("g12").Select
Range(Selection, Selection.End(xlToRight).End(xlDown)).Copy
Workbooks(wb2).Activate
Range("a12").PasteSpecial xlPasteValues
Range("a12").PasteSpecial xlPasteFormats
Workbooks(wb2).Close SaveChanges:=True

 

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

введите описание изображения здесь

Комментарии:

1. Что происходит, когда вы открываете CSV-файл в блокноте или каком-либо другом текстовом редакторе?

2. Откройте csv в блокноте, формат даты, скорее всего, не изменился. При открытии Excel прочитает обычную текстовую дату и преобразует ее в короткую дату, указанную в настройках вашей системы. (правка: 1 Бигбену за то, что опередил меня) :p

3. когда я открываю в блокноте , формат изменяется с дд/мм/гггг на мм/дд/гггг

4. просто чтобы добавить, когда я вручную копирую вставку, формат не меняется, что довольно странно.