我正在努力处理excel/VBA中的日期
我有一个带日期列的电子表格,按预期显示英国格式.
然后我操纵电子表格并将其保存为文本文件,以便将数据加载到另一个系统中.
我的问题来自于我保存文件,因为它做了两件事,首先是由于美国的Excel偏见,它试图"翻转"日期所以例如2012年7月1日从2012年7月1日到2012年1月7日
其次当我然后保存文件并重新打开文本文件时,它似乎已经删除了零,所以我的日期现在不仅读取错误的方式,而是没有零,所以显示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)
Run Code Online (Sandbox Code Playgroud)
在Excel中,这两者都可以保持我需要的格式,当我将文件保存为文本时,我就会遇到上述问题.
我几乎想用零填充日期并强制保存为文字字符串,但我的想法已经用完了.
我确信这是一个简单的解决方案,但我需要另外一些关注这个问题,所以任何帮助都是值得赞赏的
小智 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
Run Code Online (Sandbox Code Playgroud)