我知道這是一個相當普遍的問題,但我還沒有找到可靠的解決方案。Excel VBA:導入CSV日期爲dd/mm/yyyy
我有一個csv文件格式爲dd/mm/yyyy的第一列的數據。當我用Workbooks.OpenText打開它時,默認爲mm/dd/yyyy,直到它發現它認爲的月份超過12,然後恢復爲dd/mm/yyyy。
這是我的測試代碼,它試圖強制它爲xlDMYFormat,並且我也試過了文本格式。我知道這個問題只適用於* .csv文件,而不是* .txt,但這不是一個可接受的解決方案。
Option Base 1
Sub TestImport()
Filename = "test.csv"
Dim ColumnArray(1 To 1, 1 To 2)
ColumnsDesired = Array(1)
DataTypeArray = Array(xlDMYFormat)
' populate the array for fieldinfo
For x = LBound(ColumnsDesired) To UBound(ColumnsDesired)
ColumnArray(x, 1) = ColumnsDesired(x)
ColumnArray(x, 2) = DataTypeArray(x)
Next x
Workbooks.OpenText Filename:=Filename, DataType:=xlDelimited, Comma:=True, FieldInfo:=ColumnArray
End Sub
test.csv包含:
Date
11/03/2010
12/03/2010
13/03/2010
14/03/2010
15/03/2010
16/03/2010
17/03/2010
> Excel應該正確地將這些日期值解釋爲日期 是的,它應該但不是。這就是整個問題。 – 2010-04-14 06:57:40
嗯。你確定? * excel將什麼類型的值解釋爲?你有沒有檢查,或者你只是在做假設? – 2010-04-14 18:06:30
順便說一句,你也可以很容易地將這些值複製到一個日期數組,然後將它們粘貼回工作表中,然後按照需要的方式格式化單元格,*不管數據類型Excel最初是否將值解釋爲正在處理的值。三行代碼,四個上衣。 – 2010-04-14 18:44:29