我以編程方式打開.csv文件時出現了一些問題。該文件是日常數據的時間序列,其中幾個數據點與每個日期相關聯。當文件以編程方式打開時,Excel VBA日期格式/值會發生變化
當我手動打開文件時,日期正確打開,日期格式爲dd/mm/yyyy
。但是,當我以編程方式打開文件時,直到每月12號的日期打開爲mm/dd/yyyy
,雖然格式仍爲dd/mm/yyyy
(例如,1983年7月1日(1983年1月7日))將作爲第7 1983年1月(1983年1月1日) - 這不僅僅是一個格式問題,與這些日期相關的朱利安日期(自1901年1月1日以來的天數)也發生了變化),並且每月12日之後的日期被正確打開,儘管作爲文本而不是日期。
作爲文本輸入的數據不是問題,但是,一旦文件打開就更改日期是有問題的。我可以嘗試將整個.csv文件導入爲以逗號分隔的文本,而不是實際打開文件,但是,如果我可以在打開文件時停止更改日期,它會更容易,更快速。
過去有沒有人有類似的問題?任何意見,將不勝感激。
乾杯,本。
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文件不會做任何事情來改變它本身的內容(例如,在記事本中);張貼一些代碼或其他信息,顯示你如何閱讀它,以及你正在閱讀的文字。否則,我懷疑你的問題將被視爲「不是真正的問題」。 :) – 2012-03-08 23:06:08
對不起,肯代碼不清晰,下面的代碼。 – 2012-03-08 23:15:37
肯在這裏肯定。有一個根本原因。在那個時候,記事本中的文件是什麼樣子的,你是如何打開文件的?它是否被拉入模板。粘貼? – datatoo 2012-03-08 23:17:13