0

我正在努力处理 excel/VBA 中的日期

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

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

当我保存文件时我的问题出现了,因为它做了两件事,首先是由于美国对 Excel 的偏见,它试图“翻转”日期,例如 2012 年 7 月 1 日从 01/07/2012 到 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 中,这两种方法都可以保持我需要的格式,当我将文件另存为文本时,我会遇到上述问题。

我几乎想用零填充日期并强制保存为文字字符串,但我已经没有想法了。

我确信这是一个简单的解决方法,但我需要其他人关注这个问题,因此感谢您的帮助

4

1 回答 1

5

保存到 .csr 文件以导入 Access 时,我遇到了同样的问题。答案是添加Local:=TrueSaveAs声明中。这将日期保持为英国格式。

下面是我使用的代码:

' 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
于 2012-11-13T20:42:44.033 回答