通过macros生成的CSV文件的date格式

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

任何人都可以帮我吗? 将数据写入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 

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

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

可能的解决scheme:在格式化的datestring前面添加一个=符号,并用引号括起来,这样就可以像这样处理string:

 ="1/12/2014" 

您也可以在date前加一个撇号,这也会导致Excel将其视为一个string:

 '1/12/2014 

另一个可能的解决scheme是创build一个实际的Excel文件。