CSV日期格式

时间:2008-10-15 05:37:38

标签: excel excel-vba csv vba

我有一个VB应用程序,它提取数据并创建3个CSV文件(a.csv,b.csv,c.csv)。然后我使用另一个Excel电子表格(import.xls)将上述CSV文件中的所有数据导入到此工作表中。

import.xls文件有一个宏,可以逐个打开CSV文件并复制数据。我面临的问题是CSV文件中的日期存储为mm / dd / yyyy,并将其复制到Excel工作表中。但我希望日期格式为dd / mm / yyy。

当我手动打开任何CSV文件时,日期会以正确的格式显示(mm / dd / yyyy)。知道如何解决这个问题吗?

4 个答案:

答案 0 :(得分:16)

当我遇到这个问题时,我通常会将日期写为yyyy-mm-dd,Excel会明确地解释它。

答案 1 :(得分:8)

您可以使用格式 VBA功能:

Format(DateText, "dd/mm/yyyy")

这将根据您的喜好对其进行格式化。

对于更永久的解决方案,请尝试在Windows中更改区域设置,Excel将其用于日期格式。

开始 - >设置 - >控制面板 - >区域选择。

确保将语言设置为适当的语言,并确保日期设置符合您的要求

答案 2 :(得分:1)

首先,其他答案都很好,但您可能会发现一些有用的信息

CSV文件仅包含文字。也就是说,数据不是日期格式,而是文本格式。因此,当您在Excel中打开CSV文件时,Excel默认会为您解释该数据。它不必。您可以强制它将其保留为文本,或者如Mark所述,您可以将代码添加到导入宏中,以便为您更改。 如果您想要自动化流程,那么这是最佳解决方案。只需将VBA中的代码添加到将所需日期格式应用于包含日期数据的列的宏。 或者,您可以在文件打开后手动执行此操作,并通过自己选择列并查看格式来粘贴数据。您可以自定义数字格式(选择自定义),然后自行编写。例如dd / mm / yyyy。

答案 3 :(得分:0)

我有一个类似的问题并且像这样解决了它,基本上它是'以上所有'选项

  1. 使用format(date,'dd-mmm-yyyy') 将日期转换为2-3-4格式 例如,2008年8月至2008年,没办法计算机 错误01-aug为08-jan: - )
  2. 因为在excel中复制它 自动将其恢复为 日期/时间格式,转换结果 使用cstr上的字符串 功能在1
  3. 格式化日期的单元格 被复制为文本(如果没有, 如果是擅长的话,它会 将其转换回日期/时间
  4. 将工作表另存为csv文件 在记事本中打开以确认它有 工作
  5. 有些人可能会说这太过分了,但最好还是安全一点,而不是让用户在一年后给我打电话告诉我它正在用日期做一些奇怪的事情