2012-09-13 52 views
0

我用Excel/VBA轉換爲文本在VBA

內處理日期我有一個日期列的電子表格,在英國的格式顯示預期掙扎時,力求保持日期格式。

然後,我操縱電子表格並將其保存爲文本文件,以便將數據加載到另一個系統中。

我保存文件時遇到問題,因爲它有兩件事情,第一是由於美國偏愛Excel,它試圖「翻轉」日期,因此例如2012年7月1日從2012年7月1日到07日/ 01/2012

其次,當我然後保存該文件並重新打開文本文件,它似乎已經放棄了零,所以我的日期不僅讀取錯誤的方式,但沒有零,所以正在顯示2012年7月1日

我輸入的系統對它接受的日期格式非常具體。

我已經試過各種

ActiveCell.FormulaR1C1 = "=TEXT(RC[-1],""dd/mm/yyyy"")" 

Cells(x, 3).Value = Left(CStr(Cells(x, 3).Value), 2) + "/" + Mid(CStr(Cells(x, 3).Value), 4, 2) + "/" + Right(CStr(Cells(x, 3).Value), 4) 

在Excel中這兩個在做我保持所需的格式的伎倆,這是當我再將該文件保存爲文本,我得到上述問題。

我幾乎想要用零填充日期,並強制保存爲文字字符串,但我已經沒有想法。

我相信這是一個簡單的修復,但我需要一些其他的眼睛,所以任何幫助表示讚賞

+1

你是如何「操縱電子表格,然後將其保存爲文本文件」?知道這將有助於找出解決問題的最佳方法。另外,該操作的導入部分也是一個不同的問題。你關心數據如何存儲在文本文件中,還是隻關心它以正確的格式導入? – Omnikrys

+0

同意以上。我無法重現您的問題,因爲'.csv'和'.txt'都保存了一段英國日期,它們都以正確的格式出現,完全與電子表格中的一樣。 –

+0

您好,我從字面上有兩個文本列後跟一個日期列,需要保存那些爲文本文件,並正在使用 ActiveWorkbook.SaveAs名代碼這樣做:= _ 「filename_submit.txt」 _ ,的FileFormat: = xlText,CreateBackup:= False – richD

回答

5

問題保存到文件.csr文件導入到Access時我有同樣的問題。答案是將Local:=True添加到SaveAs聲明中。這將日期保持爲英國格式。

下面是我使用的代碼:

' save data to csv file 
ChDir "C:\Documents and Settings\Doug\My Documents\Fitness\LogCard Data" 
ActiveWorkbook.SaveAs Filename:= _ 
"C:\Documents and Settings\Doug\My Documents\Fitness\LogCard Data\LogCard_access.csv" _ 
    , FileFormat:=xlCSV, CreateBackup:=False, Local:=True