CSVdate格式

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

import.xls文件有一个macros,它可以逐个打开CSV文件并复制数据。 我遇到的问题是CSV文件中的date存储为mm / dd / yyyy,并且按原样复制到Excel表单中。 但我想以dd / mm / yyy格式显示date。

当我手动打开任何CSV文件时,date将以正确的格式(mm / dd / yyyy)显示。 任何想法如何我可以解决这个问题?

您可以使用格式化 VBAfunction:

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

这将格式化你喜欢的。

对于更为常见的解决scheme,请尝试更改Windows本身的区域设置,Excel将其用于date格式设置。

开始 – >设置 – >控制面板 – >区域选项。

确保语言设置为适当的,并且date设置如你所愿

当我碰到这个问题的时候,我通常会把date写成yyyy-mm-dd,这样Excel就可以毫不含糊地解释。

首先,其他的答案都很好,但还有更多的信息可以帮助你

一个CSV文件只包含文本。 这是数据不是date格式,而是文本格式。 所以当你在Excel中打开一个CSV文件时,默认情况下Excel会为你解释这些数据。 它不需要。 您可以强制它将其保留为文本,或者如Mark所述,您可以将代码添加到导入macros中,以便为您更改。 如果你想要一个自动化的过程,那么这是最好的解决scheme。 只需将VBA中的代码添加到将date格式应用到具有date数据的列的macros中即可。 或者,您可以在文件打开后手动执行此操作,并通过自己select列和格式化来粘贴数据。 您可以自定义数字格式(select自定义),然后自己写。 例如dd / mm / yyyy。

我有一个类似的问题,并解决这个问题,实质上是“上述所有”选项

  1. format(date,'dd-mmm-yyyy')将date转换为2-3-4格式eg01-aug-2008,没有办法计算机错误01-aug 08-jan 🙂
  2. 由于在Excel中复制它会自动将其恢复为date/时间格式,请使用1中函数的cstr将结果转换为string
  3. 格式化date被复制为文本的单元格(如果你不这样做,就像excel一样粗重,它会把它转换回date/时间
  4. 将表格保存为csv文件并在记事本中打开以确认它已经工作

有些人可能会说这是过度的,但最好是安全的一面,而不是一个用户打电话给我一年后,告诉我这是做一些奇怪的date