在VBA中转换为文本时保留date格式

我正在处理excel / VBA中的date

我有一个date列的电子表格,按照预期显示英国格式。

然后,我操作电子表格并将其保存为文本文件,以便将数据加载到另一个系统中。

我保存文件的时候出现了两个问题,第一个是由于美国偏爱Excel,它试图“翻转”date,例如2012年7月1日从2012年1月1日到2012年1月7日

其次,当我然后保存文件,并重新打开文本文件,它似乎已经放弃了零,所以我现在的date不仅读错了方向,但没有零,所以显示7/1/2012

我input的系统对它接受的date格式非常具体。

我尝试了各种各样的

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中,这两个都能保持我需要的格式,当我把文件保存为文本时,我得到了上述问题。

我几乎想要用零填充date,并强制保存为string,但我已经没有想法了。

我相信这是一个简单的修复,但我需要一些其他的眼睛在这个问题上,所以任何帮助表示赞赏

保存到.csr文件以导入到Access时,我遇到同样的问题。 答案是在SaveAs语句中添加Local:=True 。 这将date保持为英国格式。

以下是我使用的代码:

 ' 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