【问题标题】:Date format of CSV file generated through macro通过宏生成的 CSV 文件的日期格式
【发布时间】:2015-01-12 13:50:49
【问题描述】:

我正在尝试使用宏将数据从 excel 文件导出到 csv 文件。除了excel文件(dd-mmm-yyyy)中的日期格式在csv文件中更改为(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

【问题讨论】:

  • 您如何检查 .csv 文件 - 使用文本编辑器或再次在 Excel 中打开它? (应该是前者)
  • @Rory 我使用 Excel 来检查它。 csv 文件稍后被上传以填充数据库表。这就是需要日期格式的地方
  • 能否贴出出现故障的相关代码块?
  • @Amber Excel 在打开 csv 文件时会重新格式化数据。使用记事本/写字板等程序检查它 - 它应该与创建 csv 时显示的相同。
  • @Amber,当您在 Excel 中打开 *.CSV 文件时,将应用 Excel 的默认日期格式,因为没有指定格式。您不能在 CSV 中应用格式。

标签: vba excel datetime csv


【解决方案1】:

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

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

可能的解决方案:在格式化的日期字符串前面加上一个 = 符号并将其括在引号中,以便将其视为这样的字符串:

="1/12/2014"

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

'1/12/2014

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

【讨论】:

    猜你喜欢
    • 2017-04-13
    • 2015-03-11
    • 2018-03-13
    • 1970-01-01
    • 2019-10-27
    • 2021-10-09
    • 1970-01-01
    • 2018-07-23
    • 2018-03-28
    相关资源
    最近更新 更多