2012-11-26 41 views
3

我有一個奇怪的問題,每當我手動打開我的csv文件到excel中時,日期顯示在英國語言環境中正確格式化 - dd/mm/yyyy。但是,我有一個打開我的csv文件的宏,並且我將某些日期格式化爲mm/dd/yyyy,其他格式爲dd/mm/yyyy。模式似乎是那些不正確的似乎是當一天的單個數字,所以2012年5月11日現在顯示爲11/05/2012,但15/11/2012是完全出現在csv文件。Excel宏日期格式在文件打開時變化

任何幫助將是偉大的。

感謝 Jalz

Sub openfile() 
' 
' openfile Macro 
' 

    Workbooks.Open filename:= _ 
    "c:\myfile.csv" 
    Range("A1:J46").Select 
    Selection.Copy 
End Sub 
+0

嗨@ JK63。你是什​​麼意思手動打開CSV?這是否意味着打開excel並粘貼值或右鍵單擊該文件並選擇使用MsExcel打開? – CaBieberach

+0

不,我的意思是我加載excel,然後打開文件並選擇我的cab文件。所有日期的順序都是正確的 – JK36

回答

3

VBA使用設置給它的所有格式默認的本地美國,(即使你是在一個diferent區域)(日期分隔符,小數點分隔符)。你可以繞過它的本地屬性:

Call Workbooks.Open(Filename:="c:\myfile.csv", local:=True) 
+0

嗨,感謝kurast,剛剛有機會再次用上面的代碼來看它,沒有做任何奇怪的事情,只是打開文件,當我運行該宏時仍然有混淆的日期... 。如果我打開文件打開,文件打開並顯示正確的日期範圍.... – JK36

+0

你可以記錄(宏記錄器)當你mannualy打開csv文件時會發生什麼? – kurast

+0

您好kurast,我認爲它的工作 - 我正在處理一些舊數據,我已經'改變'瞭解excel在做什麼和忘記它。即時運行一些更多的測試再次感謝 – JK36