通过宏生成的CSV文件的日期格式

时间:2015-01-12 13:50:49

标签: excel vba excel-vba datetime csv

我尝试使用宏将数据从excel文件导出到csv文件。除了在csv文件中将excel文件(dd-mmm-yyyy)中的日期格式更改为(dd-mmm-yy)的部分之外,它工作正常。我想在csv文件中保留日期格式为(dd-mmm-yyyy)。

有人可以帮帮我吗?将数据写入csv文件的代码的一部分是

c1 = 2
Dim tempDate As String
Dim tempDate2 As String

tempDate = Format(Sheets("Source").Cells(c1, 2).value, "dd-mmm-yyyy")
tempDate2 = Format(Sheets("Source").Cells(c1, 3).value, "dd-mmm-yyyy")


txtfile.WriteLine (Sheets("Source").Cells(c1, 1).value & sSep & tempDate & sSep & _
tempDate2 & sSep & Sheets("Source").Cells(c1, 4).value & sSep & _
temp1 & sSep & Sheets("Source").Cells(c1, 6).value & sSep & Sheets("Source").Cells(c1, 7).value & sSep & _
Sheets("Source").Cells(c1, 8).value)
c1 = c1 + 1

1 个答案:

答案 0 :(得分:1)

听起来像CSV文件设置为使用Microsoft Excel打开。您可以更改"打开"对话框使用另一个程序,也许是Notepad.exe。

使用Microsoft Excel打开CSV文件时,Excel的默认日期格式将应用于所有日期,因为未指定格式。 CSV文件不能包含格式信息。

可能的解决方案:在格式化的日期字符串前加上一个=符号并将其包装在引号中,以便将其视为字符串,如下所示:

="1/12/2014"

您也可以使用撇号为日期添加前缀,这也会导致Excel将其视为字符串:

'1/12/2014

另一个可能的解决方案是创建一个实际的Excel文件。