我正在努力处理excel / VBA中的日期
我有一个带有日期列的电子表格,按预期显示英国格式。
然后我操纵电子表格并将其保存为文本文件,以便将数据加载到另一个系统中。
当我保存文件时出现问题,因为它做了两件事,首先是由于美国对Excel的偏见,它试图“翻转”日期,所以例如2012年7月1日从2012年7月1日到07 / 01/2012
其次当我然后保存文件并重新打开文本文件时,它似乎已经删除了零,所以我的日期现在不仅读取错误的方式,而且没有零,所以显示7/1/2012
我导入的系统对它接受的日期格式非常具体。
我尝试了各种各样的
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中,这两者都可以保持我需要的格式,当我将文件保存为文本时,我会遇到上述问题。
我几乎想用零填充日期并强制保存为文字字符串,但我的想法已经用完了。
我确信这是一个简单的解决方法,但我需要另外一些关于这个问题的眼睛,所以任何帮助都表示赞赏
答案 0 :(得分: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