У меня есть проблема с программным открытием файла .csv. Файл представляет собой временную серию ежедневных данных с несколькими точками данных, связанными с каждой датой.Форматы/значения формата Excel VBA изменяются, когда файл открывается программно
Когда я вручную открываю файл, даты открываются правильно, как формат даты dd/mm/yyyy
. Однако, когда я открываю файл программно, даты до 12 числа каждого месяца открываются как mm/dd/yyyy
, хотя формат остается dd/mm/yyyy
(например, 1 июля 1983 года (1/7/1983), будет открыт как 7-й из Январь 1983 (7/1/1983) - это не просто вопрос форматирования, дата Джулиана (дни с 1 января 1901 года), связанная с этими датами, также изменяется), и даты после 12 числа каждого месяца открываются правильно, хотя в качестве текста, а не даты.
Данные, поступающие в виде текста, не являются проблемой, однако даты, изменяющиеся после открытия файла, проблематичны. Я мог бы попытаться импортировать весь CSV-файл как текст с разделителями-запятыми, а не открывать файл, однако было бы проще и быстрее, если бы я мог остановить изменение дат при открытии файла.
У кого-то была аналогичная проблема с этим в прошлом? Любые советы по этому поводу будут высоко оценены.
Cheers, Бен.
Flder = InputBox("Copy and Paste Folder path here:")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourcePath = FSO.GetFolder(Flder)
For Each File In SourcePath.Files
Workbooks.Open (File)
FlNm = File.Name
StrtCol = Workbooks(FlNm).Worksheets(1).Range(Cells(4, 1), Cells(4, 30)).Find ("Mean").Column
Workbooks(FlNm).Worksheets(1).Range(Cells(1, 1), Cells(60000, 1)).Copy (Workbooks("Find Water Years V2.xls").Worksheets(1).Range("A3"))
Workbooks(FlNm).Worksheets(1).Range(Cells(1, StrtCol), Cells(60000, StrtCol + 1)).Copy (Workbooks("Find Water Years V2.xls").Worksheets(1).Range("B3"))
Workbooks(FlNm).Close
Next
Проблема возникает на линии Workbooks.Open (File). Извините, что не выбрасывал это для начала.
Можете ли вы определить «открыто программно»? Вы имеете в виду автоматизацию Excel? Или прямо в коде VBA? Невозможно «открыть файл», чтобы изменить любой контент; это что-то другое, но вы ничего не указали в этом вопросе. Открытие файла .csv не делает ничего, чтобы изменить содержимое сам по себе (например, в Блокноте); разместите некоторый код или другую информацию, которая показывает, как вы читаете ее и что вы делаете с текстом, который вы читаете. В противном случае, я подозреваю, что ваш вопрос будет закрыт как «не настоящий вопрос». :) –
Извините за отсутствие ясности на одном Кене, код ниже. –
Согласитесь с Кеном здесь. Есть основная причина. Как выглядит файл в блокноте в этот момент, как вы открываете файл? Его втягивают в шаблон. Pasted? – datatoo